mirror of https://gitee.com/Nocallback/glibc.git
Browse Source
Resolves: #15465 The program name may be unavailable if the user application tampers with argc and argv[]. Some parts of the dynamic linker caters for this while others don't, so this patch consolidates the check and fallback into a single macro and updates all users.rsa/hwcap2_v4
41 changed files with 220 additions and 103 deletions
@ -0,0 +1,24 @@ |
|||
/* Verify that program does not crash when LD_DEBUG is set and the program name
|
|||
is not available. This is the library. |
|||
Copyright (C) 2013 Free Software Foundation, Inc. |
|||
This file is part of the GNU C Library. |
|||
|
|||
The GNU C Library is free software; you can redistribute it and/or |
|||
modify it under the terms of the GNU Lesser General Public |
|||
License as published by the Free Software Foundation; either |
|||
version 2.1 of the License, or (at your option) any later version. |
|||
|
|||
The GNU C Library is distributed in the hope that it will be useful, |
|||
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|||
Lesser General Public License for more details. |
|||
|
|||
You should have received a copy of the GNU Lesser General Public |
|||
License along with the GNU C Library; if not, see |
|||
<http://www.gnu.org/licenses/>. */
|
|||
|
|||
void |
|||
foo (void) |
|||
{ |
|||
return; |
|||
} |
|||
@ -0,0 +1,35 @@ |
|||
/* Verify that program does not crash when LD_DEBUG is set and the program name
|
|||
is not available. |
|||
Copyright (C) 2013 Free Software Foundation, Inc. |
|||
This file is part of the GNU C Library. |
|||
|
|||
The GNU C Library is free software; you can redistribute it and/or |
|||
modify it under the terms of the GNU Lesser General Public |
|||
License as published by the Free Software Foundation; either |
|||
version 2.1 of the License, or (at your option) any later version. |
|||
|
|||
The GNU C Library is distributed in the hope that it will be useful, |
|||
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|||
Lesser General Public License for more details. |
|||
|
|||
You should have received a copy of the GNU Lesser General Public |
|||
License along with the GNU C Library; if not, see |
|||
<http://www.gnu.org/licenses/>. */
|
|||
|
|||
extern void foo (void); |
|||
|
|||
int |
|||
do_test (int argc, char **argv) |
|||
{ |
|||
argv[0] = argv[1]; |
|||
argc--; |
|||
|
|||
/* This should result in a symbol lookup, causing a volley of debug output
|
|||
when LD_DEBUG=symbols. */ |
|||
foo (); |
|||
|
|||
return 0; |
|||
} |
|||
|
|||
#include <test-skeleton.c> |
|||
Loading…
Reference in new issue