| From 8f6181b6f8dd82aa1ab1288cc7f2fd05d4a2519f Mon Sep 17 00:00:00 2001 |
| From: Matt Weber <matthew.weber@rockwellcollins.com> |
| Date: Mon, 1 May 2017 19:55:07 -0500 |
| Subject: [PATCH] musl compat canonicalize_file_name() |
| |
| Adds an equivalent of canonicalize_file_name |
| using realpath(). |
| |
| Bug report (origin of this patch): |
| https://bugs.freedesktop.org/show_bug.cgi?id=99944 |
| |
| Bug report has been updated with suggestion to not use inline. |
| |
| Signed-off-by: Matthew Weber <matthew.weber@rockwellcollins.com> |
| --- |
| configure.ac | 2 ++ |
| src/libqmi-glib/qmi-utils.c | 15 +++++++++++++++ |
| 2 files changed, 17 insertions(+) |
| |
| diff --git a/configure.ac b/configure.ac |
| index c56fa3e..d835db4 100644 |
| --- a/configure.ac |
| +++ b/configure.ac |
| @@ -80,6 +80,8 @@ AC_SUBST(GLIB_LIBS) |
| GLIB_MKENUMS=`$PKG_CONFIG --variable=glib_mkenums glib-2.0` |
| AC_SUBST(GLIB_MKENUMS) |
| |
| +AC_CHECK_FUNCS([canonicalize_file_name]) |
| + |
| dnl qmi-firmware-update is optional, enabled by default |
| AC_ARG_ENABLE([firmware-update], |
| AS_HELP_STRING([--enable-firmware-update], |
| diff --git a/src/libqmi-glib/qmi-utils.c b/src/libqmi-glib/qmi-utils.c |
| index 29e5f22..26aff9e 100644 |
| --- a/src/libqmi-glib/qmi-utils.c |
| +++ b/src/libqmi-glib/qmi-utils.c |
| @@ -34,6 +34,21 @@ |
| #include "qmi-utils.h" |
| #include "qmi-error-types.h" |
| |
| +#ifndef HAVE_CANONICALIZE_FILE_NAME |
| +#include <limits.h> |
| +static char * canonicalize_file_name(const char *path) |
| +{ |
| + char buf[PATH_MAX] = { }; |
| + |
| + snprintf(buf, sizeof(buf) - 1, "%s", path); |
| + |
| + if (!realpath(path, buf)) |
| + return NULL; |
| + |
| + return strdup(buf); |
| +} |
| +#endif |
| + |
| /** |
| * SECTION:qmi-utils |
| * @title: Common utilities |
| -- |
| 1.9.1 |
| |