[commit] [patch] auto-load safe-path reset back by set ""

Jan Kratochvil
2012-05-06T15:32:03Z

Hi,

checked it in, there is some patch dependency and there were no more comments.

Thanks,
Jan

http://sourceware.org/ml/gdb-cvs/2012-05/msg00038.html

--- src/gdb/ChangeLog 2012/05/05 05:36:23 1.14211
+++ src/gdb/ChangeLog 2012/05/06 15:30:59 1.14212
@@ -1,3 +1,14 @@
+2012-05-06 Jan Kratochvil <jan.kratochvil@redhat.com>
+
+ * auto-load.c (set_auto_load_safe_path): Reset AUTO_LOAD_SAFE_PATH
+ back to DEFAULT_AUTO_LOAD_SAFE_PATH if it is being set to "".
+ (show_auto_load_safe_path): Check any-directory by comparison with "/".
+ (add_auto_load_safe_path): Change the error message.
+ (_initialize_auto_load): Change the "safe-path" help text.
+ * configure: Regenerate
+ * configure.ac (--without-auto-load-safe-path): Set
+ WITH_AUTO_LOAD_SAFE_PATH to /.
+
2012-05-05 Sergio Durigan Junior <sergiodj@redhat.com>

* stap-probe.h: Do not include unecessary `probe.h'.
--- src/gdb/doc/ChangeLog 2012/05/03 07:07:24 1.1308
+++ src/gdb/doc/ChangeLog 2012/05/06 15:31:04 1.1309
@@ -1,3 +1,9 @@
+2012-05-06 Jan Kratochvil <jan.kratochvil@redhat.com>
+
+ * gdb.texinfo (Auto-loading safe path): Make 'directories'
+ for 'set auto-load safe-path' optional. Mention if it is omitted.
+ Change disabling security protection condition to "/", twice.
+
2012-05-03 Siva Chandra Reddy <sivachandra@google.com>

* gdb.texinfo (Symbol Tables In Python): Add documentation about
--- src/gdb/auto-load.c 2012/05/02 20:00:36 1.5
+++ src/gdb/auto-load.c 2012/05/06 15:31:02 1.6
@@ -181,6 +181,12 @@
static void
set_auto_load_safe_path (char *args, int from_tty, struct cmd_list_element *c)
{
+ if (auto_load_safe_path[0] == '\0')
+ {
+ xfree (auto_load_safe_path);
+ auto_load_safe_path = xstrdup (DEFAULT_AUTO_LOAD_SAFE_PATH);
+ }
+
auto_load_safe_path_vec_update ();
}

@@ -190,7 +196,7 @@
show_auto_load_safe_path (struct ui_file *file, int from_tty,
struct cmd_list_element *c, const char *value)
{
- if (*value == 0)
+ if (strcmp (value, "/") == 0)
fprintf_filtered (file, _("Auto-load files are safe to load from any "
"directory.\n"));
else
@@ -209,8 +215,9 @@

if (args == NULL || *args == 0)
error (_("\
-Adding empty directory element disables the auto-load safe-path security. \
-Use 'set auto-load safe-path' instead if you mean that."));
+Directory argument required.\n\
+Use 'set auto-load safe-path /' for disabling the auto-load safe-path security.\
+"));

s = xstrprintf ("%s%c%s", auto_load_safe_path, DIRNAME_SEPARATOR, args);
xfree (auto_load_safe_path);
@@ -1029,8 +1036,10 @@
Show the list of directories from which it is safe to auto-load files."), _("\
Various files loaded automatically for the 'set auto-load ...' options must\n\
be located in one of the directories listed by this option. Warning will be\n\
-printed and file will not be used otherwise. Use empty string (or even\n\
-empty directory entry) to allow any file for the 'set auto-load ...' options.\n\
+printed and file will not be used otherwise.\n\
+Setting this parameter to an empty list resets it to its default value.\n\
+Setting this parameter to '/' (without the quotes) allows any file\n\
+for the 'set auto-load ...' options.\n\
This option is ignored for the kinds of files having 'set auto-load ... off'.\n\
This options has security implications for untrusted inferiors."),
set_auto_load_safe_path,
--- src/gdb/configure 2012/04/27 20:47:52 1.360
+++ src/gdb/configure 2012/05/06 15:31:02 1.361
@@ -4964,7 +4964,7 @@
# Check whether --with-auto-load-safe-path was given.
if test "${with_auto_load_safe_path+set}" = set; then :
withval=$with_auto_load_safe_path; if test "$with_auto_load_safe_path" = "no"; then
- with_auto_load_safe_path=""
+ with_auto_load_safe_path="/"
fi
else
with_auto_load_safe_path="$prefix"
--- src/gdb/configure.ac 2012/04/27 20:47:53 1.171
+++ src/gdb/configure.ac 2012/05/06 15:31:03 1.172
@@ -141,7 +141,7 @@
AS_HELP_STRING([--with-auto-load-safe-path=PATH], [directories safe to hold auto-loaded files])
AS_HELP_STRING([--without-auto-load-safe-path], [do not restrict auto-loaded files locations]),
[if test "$with_auto_load_safe_path" = "no"; then
- with_auto_load_safe_path=""
+ with_auto_load_safe_path="/"
fi],
[with_auto_load_safe_path="$prefix"])
AC_DEFINE_DIR(DEFAULT_AUTO_LOAD_SAFE_PATH, with_auto_load_safe_path,
--- src/gdb/doc/gdb.texinfo 2012/05/03 07:07:24 1.954
+++ src/gdb/doc/gdb.texinfo 2012/05/06 15:31:04 1.955
@@ -21219,9 +21219,12 @@
@table @code
@anchor{set auto-load safe-path}
@kindex set auto-load safe-path
-@item set auto-load safe-path @var{directories}
+@item set auto-load safe-path @r{[}@var{directories}@r{]}
Set the list of directories (and their subdirectories) trusted for automatic
loading and execution of scripts. You can also enter a specific trusted file.
+If you omit @var{directories}, @samp{auto-load safe-path} will be reset to
+its default value as specified during @value{GDBN} compilation.
+
The list of directories uses directory separator (@samp{:} on GNU and Unix
systems, @samp{;} on MS-Windows and MS-DOS) to separate directories, similarly
to the @env{PATH} environment variable.
@@ -21240,7 +21243,7 @@
host platform directory separator in use.
@end table

-Setting this variable to an empty string disables this security protection.
+Setting this variable to @file{/} disables this security protection.
This variable is supposed to be set to the system directories writable by the
system superuser only. Users can add their source directories in init files in
their home directories (@pxref{Home Directory Init File}). See also deprecated
@@ -21260,7 +21263,7 @@
Specify this directory as in the previous case but just for a single
@value{GDBN} session.

-@item @kbd{gdb -iex "set auto-load safe-path" @dots{}}
+@item @kbd{gdb -iex "set auto-load safe-path /" @dots{}}
Disable auto-loading safety for a single @value{GDBN} session.
This assumes all the files you debug during this @value{GDBN} session will come
from trusted sources.