diff options
author | Jim Kingdon <jkingdon@engr.sgi.com> | 1994-03-26 04:26:26 +0000 |
---|---|---|
committer | Jim Kingdon <jkingdon@engr.sgi.com> | 1994-03-26 04:26:26 +0000 |
commit | bb6247c6b2232cbe9b8b3fbe8fc202a4c502ecea (patch) | |
tree | 881c65b8922d4280a12fc35ab5767e997f155e40 /gdb | |
parent | 493424b108c2461cab7192f65a8193c3ad1280dc (diff) | |
download | gdb-bb6247c6b2232cbe9b8b3fbe8fc202a4c502ecea.zip gdb-bb6247c6b2232cbe9b8b3fbe8fc202a4c502ecea.tar.gz gdb-bb6247c6b2232cbe9b8b3fbe8fc202a4c502ecea.tar.bz2 |
* 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).
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/buildsym.c | 7 | ||||
-rw-r--r-- | gdb/demangle.c | 8 |
2 files changed, 9 insertions, 6 deletions
diff --git a/gdb/buildsym.c b/gdb/buildsym.c index 0fe22d1..e4dcbdd 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 5bcf437..eecd3d3 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); } |