libaacs | branch: master | npzacs <[email protected]> | Sat Dec 17 15:41:36 2011 +0200| [556699544d22ff8a345b9512d73ae6daa7e4838f] | committer: npzacs
Fixed segfault when mount point path can't be resolved > http://git.videolan.org/gitweb.cgi/libaacs.git/?a=commit;h=556699544d22ff8a345b9512d73ae6daa7e4838f --- ChangeLog | 1 + configure.ac | 2 +- src/libaacs/mmc.c | 12 +++++++++++- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index cd1cebc..11a8c69 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,5 @@ ????-??-??: + - Fixed segfault when mount point path can't be resolved - Do not export internal symbols from generated parser/lexer - Do not distribute generated parser files - Check for libgpg-error. Link against it when needed. diff --git a/configure.ac b/configure.ac index ed960fc..a780c06 100644 --- a/configure.ac +++ b/configure.ac @@ -91,7 +91,7 @@ AC_TYPE_SIGNAL # required headers AC_CHECK_HEADERS([stdarg.h sys/types.h dirent.h errno.h libgen.h malloc.h]) AC_CHECK_HEADERS([stdlib.h mntent.h linux/cdrom.h inttypes.h]) -AC_CHECK_HEADERS([sys/time.h time.h sys/select.h]) +AC_CHECK_HEADERS([sys/time.h time.h sys/select.h limits.h]) # required structures AC_STRUCT_DIRENT_D_TYPE diff --git a/src/libaacs/mmc.c b/src/libaacs/mmc.c index 6165c8b..7c48d6f 100644 --- a/src/libaacs/mmc.c +++ b/src/libaacs/mmc.c @@ -37,6 +37,10 @@ #include <mntent.h> #endif +#ifdef HAVE_LIMITS_H +#include <limits.h> +#endif + #ifdef HAVE_LINUX_CDROM_H #include <sys/ioctl.h> #include <linux/cdrom.h> @@ -384,7 +388,13 @@ MMC *mmc_open(const char *path) #if defined(HAVE_MNTENT_H) #ifdef HAVE_REALPATH - char *file_path = realpath(path, NULL); + char *file_path = malloc(PATH_MAX); + if (!file_path || !realpath(path, file_path)) { + DEBUG(DBG_MMC, "Failed resolving path %s (%p)\n", path, mmc); + X_FREE(mmc); + X_FREE(file_path); + return NULL; + } #else char *file_path = (char*)malloc(strlen(path) + 1); strcpy(file_path, path); _______________________________________________ libaacs-devel mailing list [email protected] http://mailman.videolan.org/listinfo/libaacs-devel
