From: Jim Kingdon Date: Sat, 26 Mar 1994 04:26:26 +0000 (+0000) Subject: * buildsym.c (start_subfile, patch_subfile_names), demangle.c X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=bb6247c6b2232cbe9b8b3fbe8fc202a4c502ecea;p=binutils-gdb.git * buildsym.c (start_subfile, patch_subfile_names), demangle.c (set_demangling_style, set_demangling_command): Use savestring not strdup. We were not dealing properly with a NULL return from strdup, and were not declaring strdup (the system header may or may not have it). --- diff --git a/gdb/buildsym.c b/gdb/buildsym.c index 0fe22d1afac..e4dcbddc568 100644 --- a/gdb/buildsym.c +++ b/gdb/buildsym.c @@ -405,8 +405,9 @@ start_subfile (name, dirname) current_subfile = subfile; /* Save its name and compilation directory name */ - subfile->name = (name == NULL)? NULL : strdup (name); - subfile->dirname = (dirname == NULL) ? NULL : strdup (dirname); + subfile->name = (name == NULL) ? NULL : savestring (name, strlen (name)); + subfile->dirname = + (dirname == NULL) ? NULL : savestring (dirname, strlen (dirname)); /* Initialize line-number recording for this subfile. */ subfile->line_vector = NULL; @@ -479,7 +480,7 @@ patch_subfile_names (subfile, name) && subfile->name[strlen(subfile->name)-1] == '/') { subfile->dirname = subfile->name; - subfile->name = strdup (name); + subfile->name = savestring (name, strlen (name)); /* Default the source language to whatever can be deduced from the filename. If nothing can be deduced (such as for a C/C++ diff --git a/gdb/demangle.c b/gdb/demangle.c index 5bcf4374bf4..eecd3d3ed42 100644 --- a/gdb/demangle.c +++ b/gdb/demangle.c @@ -129,7 +129,8 @@ set_demangling_command (ignore, from_tty, c) { free (current_demangling_style_string); current_demangling_style_string = - strdup (dem -> demangling_style_name); + savestring (dem -> demangling_style_name, + strlen (dem -> demangling_style_name)); } } if (current_demangling_style == unknown_demangling) @@ -139,7 +140,8 @@ set_demangling_command (ignore, from_tty, c) one as the default. */ current_demangling_style = demanglers[0].demangling_style; current_demangling_style_string = - strdup (demanglers[0].demangling_style_name); + savestring (demanglers[0].demangling_style_name, + strlen (demanglers[0].demangling_style_name)); warning ("`%s' style demangling chosen as the default.\n", current_demangling_style_string); } @@ -156,7 +158,7 @@ set_demangling_style (style) { free (current_demangling_style_string); } - current_demangling_style_string = strdup (style); + current_demangling_style_string = savestring (style, strlen (style)); set_demangling_command ((char *) NULL, 0); }