From d3207287b36184f3d0fe531bb2dba1a9fb67e3c3 Mon Sep 17 00:00:00 2001 From: "Ryan S. Arnold" Date: Wed, 25 May 2011 11:11:25 -0500 Subject: Correct "//" in search paths due to LD_AT_PLATFORM="" --- ChangeLog | 8 ++++++++ sysdeps/unix/sysv/linux/powerpc/dl-librecon.h | 20 +++++++++++++++----- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 37438bbd95..f172c0d465 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2011-05-25 Ryan S. Arnold + + * sysdeps/unix/sysv/linux/powerpc/dl-librecon.h + (EXTRA_LD_ENVVARS_11): Fix condition where there's an extra slash in + the search path, i.e., "//" when LD_AT_PLATFORM= or + LD_AT_PLATFORM="". + (EXTRA_UNSECURE_ENVVARS): Add LD_AT_PLATFORM to the list. + 2011-02-11 Jakub Jelinek * stdio-common/printf-parsemb.c (__parse_one_specmb): Handle diff --git a/sysdeps/unix/sysv/linux/powerpc/dl-librecon.h b/sysdeps/unix/sysv/linux/powerpc/dl-librecon.h index 19dafac63e..19c3da7cfb 100644 --- a/sysdeps/unix/sysv/linux/powerpc/dl-librecon.h +++ b/sysdeps/unix/sysv/linux/powerpc/dl-librecon.h @@ -1,5 +1,5 @@ /* Optional code to distinguish library flavours. - Copyright (C) 2010 Free Software Foundation, Inc. + Copyright (C) 2010, 2011 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Peter Bergner @@ -20,17 +20,27 @@ #ifndef _DL_LIBRECON_H +#include #include /* Recognizing extra environment variables. */ #define EXTRA_LD_ENVVARS_11 \ if (memcmp (envline, "AT_PLATFORM", 11) == 0) \ { \ - GLRO(dl_platform) = &envline[12]; \ - /* Determine the length of the platform name. */ \ - if (GLRO(dl_platform) != NULL) \ - GLRO(dl_platformlen) = strlen (GLRO(dl_platform)); \ + int platformlen = strlen (&envline[12]); \ + GLRO(dl_platformlen) = platformlen; \ + if (platformlen > 0) \ + { \ + GLRO(dl_platform) = &envline[12]; \ + break; \ + } \ + GLRO(dl_platform) = NULL; \ break; \ } +/* Extra unsecure variables. The names are all stuffed in a single + string which means they have to be terminated with a '\0' explicitly. */ +#define EXTRA_UNSECURE_ENVVARS \ + "LD_AT_PLATFORM\0" + #endif /* dl-librecon.h */ -- cgit 1.4.1