You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
158 lines
5.0 KiB
158 lines
5.0 KiB
diff --git a/binutils/dwarf.c b/binutils/dwarf.c |
|
index 6ecfab5d..f8698213 100644 |
|
--- a/binutils/dwarf.c |
|
+++ b/binutils/dwarf.c |
|
@@ -4914,7 +4914,7 @@ display_debug_lines_decoded (struct dwarf_section * section, |
|
else |
|
{ |
|
newFileName = (char *) xmalloc (fileNameLength + 1); |
|
- strncpy (newFileName, fileName, fileNameLength + 1); |
|
+ strcpy (newFileName, fileName); |
|
} |
|
|
|
if (!do_wide || (fileNameLength <= MAX_FILENAME_LENGTH)) |
|
diff --git a/libiberty/cp-demangle.c b/libiberty/cp-demangle.c |
|
index 3639bfbf..ed080a1a 100644 |
|
--- a/libiberty/cp-demangle.c |
|
+++ b/libiberty/cp-demangle.c |
|
@@ -185,20 +185,6 @@ static void d_init_info (const char *, int, size_t, struct d_info *); |
|
#define CP_STATIC_IF_GLIBCPP_V3 |
|
#endif /* ! defined(IN_GLIBCPP_V3) */ |
|
|
|
-/* See if the compiler supports dynamic arrays. */ |
|
- |
|
-#ifdef __GNUC__ |
|
-#define CP_DYNAMIC_ARRAYS |
|
-#else |
|
-#ifdef __STDC__ |
|
-#ifdef __STDC_VERSION__ |
|
-#if __STDC_VERSION__ >= 199901L && !__STDC_NO_VLA__ |
|
-#define CP_DYNAMIC_ARRAYS |
|
-#endif /* __STDC_VERSION__ >= 199901L && !__STDC_NO_VLA__ */ |
|
-#endif /* defined (__STDC_VERSION__) */ |
|
-#endif /* defined (__STDC__) */ |
|
-#endif /* ! defined (__GNUC__) */ |
|
- |
|
/* We avoid pulling in the ctype tables, to prevent pulling in |
|
additional unresolved symbols when this code is used in a library. |
|
FIXME: Is this really a valid reason? This comes from the original |
|
@@ -4343,29 +4329,21 @@ cplus_demangle_print_callback (int options, |
|
d_print_init (&dpi, callback, opaque, dc); |
|
|
|
{ |
|
-#ifdef CP_DYNAMIC_ARRAYS |
|
- /* Avoid zero-length VLAs, which are prohibited by the C99 standard |
|
- and flagged as errors by Address Sanitizer. */ |
|
- __extension__ struct d_saved_scope scopes[(dpi.num_saved_scopes > 0) |
|
- ? dpi.num_saved_scopes : 1]; |
|
- __extension__ struct d_print_template temps[(dpi.num_copy_templates > 0) |
|
- ? dpi.num_copy_templates : 1]; |
|
- |
|
- dpi.saved_scopes = scopes; |
|
- dpi.copy_templates = temps; |
|
-#else |
|
- dpi.saved_scopes = alloca (dpi.num_saved_scopes |
|
- * sizeof (*dpi.saved_scopes)); |
|
- dpi.copy_templates = alloca (dpi.num_copy_templates |
|
- * sizeof (*dpi.copy_templates)); |
|
-#endif |
|
- |
|
+ dpi.saved_scopes |
|
+ = (struct d_saved_scope *) xmalloc (dpi.num_saved_scopes |
|
+ * sizeof (*dpi.saved_scopes)); |
|
+ dpi.copy_templates |
|
+ = (struct d_print_template *) xmalloc (dpi.num_copy_templates |
|
+ * sizeof (*dpi.copy_templates)); |
|
d_print_comp (&dpi, options, dc); |
|
} |
|
|
|
d_print_flush (&dpi); |
|
|
|
- return ! d_print_saw_error (&dpi); |
|
+ int retval = ! d_print_saw_error (&dpi); |
|
+ free (dpi.saved_scopes); |
|
+ free (dpi.copy_templates); |
|
+ return retval; |
|
} |
|
|
|
/* Turn components into a human readable string. OPTIONS is the |
|
@@ -6307,16 +6285,12 @@ d_demangle_callback (const char *mangled, int options, |
|
} |
|
|
|
{ |
|
-#ifdef CP_DYNAMIC_ARRAYS |
|
- __extension__ struct demangle_component comps[di.num_comps]; |
|
- __extension__ struct demangle_component *subs[di.num_subs]; |
|
- |
|
- di.comps = comps; |
|
- di.subs = subs; |
|
-#else |
|
- di.comps = alloca (di.num_comps * sizeof (*di.comps)); |
|
- di.subs = alloca (di.num_subs * sizeof (*di.subs)); |
|
-#endif |
|
+ di.comps |
|
+ = (struct demangle_component *) xmalloc (di.num_comps |
|
+ * sizeof (*di.comps)); |
|
+ di.subs |
|
+ = (struct demangle_component **) xmalloc (di.num_subs |
|
+ * sizeof (*di.subs)); |
|
|
|
switch (type) |
|
{ |
|
@@ -6357,6 +6331,8 @@ d_demangle_callback (const char *mangled, int options, |
|
: 0; |
|
} |
|
|
|
+ free (di.comps); |
|
+ free (di.subs); |
|
return status; |
|
} |
|
|
|
@@ -6588,16 +6564,12 @@ is_ctor_or_dtor (const char *mangled, |
|
cplus_demangle_init_info (mangled, DMGL_GNU_V3, strlen (mangled), &di); |
|
|
|
{ |
|
-#ifdef CP_DYNAMIC_ARRAYS |
|
- __extension__ struct demangle_component comps[di.num_comps]; |
|
- __extension__ struct demangle_component *subs[di.num_subs]; |
|
- |
|
- di.comps = comps; |
|
- di.subs = subs; |
|
-#else |
|
- di.comps = alloca (di.num_comps * sizeof (*di.comps)); |
|
- di.subs = alloca (di.num_subs * sizeof (*di.subs)); |
|
-#endif |
|
+ di.comps |
|
+ = (struct demangle_component *) xmalloc (di.num_comps |
|
+ * sizeof (*di.comps)); |
|
+ di.subs |
|
+ = (struct demangle_component **) xmalloc (di.num_subs |
|
+ * sizeof (*di.subs)); |
|
|
|
dc = cplus_demangle_mangled_name (&di, 1); |
|
|
|
@@ -6640,6 +6612,8 @@ is_ctor_or_dtor (const char *mangled, |
|
} |
|
} |
|
|
|
+ free (di.comps); |
|
+ free (di.subs); |
|
return ret; |
|
} |
|
|
|
diff --git a/libiberty/make-relative-prefix.c b/libiberty/make-relative-prefix.c |
|
index e3f9f920..5dbe6f89 100644 |
|
--- a/libiberty/make-relative-prefix.c |
|
+++ b/libiberty/make-relative-prefix.c |
|
@@ -259,10 +259,7 @@ make_relative_prefix_1 (const char *progname, const char *bin_prefix, |
|
#ifdef HAVE_HOST_EXECUTABLE_SUFFIX |
|
len += strlen (HOST_EXECUTABLE_SUFFIX); |
|
#endif |
|
- if (len < MAX_ALLOCA_SIZE) |
|
- nstore = (char *) alloca (len); |
|
- else |
|
- alloc_ptr = nstore = (char *) malloc (len); |
|
+ alloc_ptr = nstore = (char *) malloc (len); |
|
|
|
startp = endp = temp; |
|
while (1)
|
|
|