From 07f1eda630517816bfa900e811963745a149e57c Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Fri, 8 Jun 2018 20:38:30 -0700 Subject: [PATCH] Add configure check for canonicalize_file_name() before use Define canonicalize_file_name API if not provided by system C library musl e.g. does not provide this API Signed-off-by: Khem Raj --- Upstream-Status: Pending configure.ac | 2 ++ src/kerneldevice/mm-kernel-device-generic.c | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+) Index: ModemManager-1.7.991/configure.ac =================================================================== --- ModemManager-1.7.991.orig/configure.ac +++ ModemManager-1.7.991/configure.ac @@ -72,6 +72,8 @@ AC_SUBST(MM_GLIB_LT_CURRENT) AC_SUBST(MM_GLIB_LT_REVISION) AC_SUBST(MM_GLIB_LT_AGE) +AC_CHECK_FUNCS([canonicalize_file_name]) + dnl----------------------------------------------------------------------------- dnl Documentation dnl Index: ModemManager-1.7.991/src/kerneldevice/mm-kernel-device-generic.c =================================================================== --- ModemManager-1.7.991.orig/src/kerneldevice/mm-kernel-device-generic.c +++ ModemManager-1.7.991/src/kerneldevice/mm-kernel-device-generic.c @@ -21,6 +21,7 @@ #define _LIBMM_INSIDE_MM #include +#include "config.h" #include "mm-kernel-device-generic.h" #include "mm-kernel-device-generic-rules.h" #include "mm-log.h" @@ -100,6 +101,24 @@ read_sysfs_property_as_string (const gch return contents; } +#ifndef HAVE_CANONICALIZE_FILE_NAME +#include +#include +#include +#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 + /*****************************************************************************/ /* Load contents */