From 8f6181b6f8dd82aa1ab1288cc7f2fd05d4a2519f Mon Sep 17 00:00:00 2001 From: Matt Weber 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 --- 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 +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