diff options
author | Nick Clifton <nickc@redhat.com> | 2016-03-21 16:31:46 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2016-03-21 16:31:46 +0000 |
commit | e1fa0163505af867009ea73fc5f705162120e795 (patch) | |
tree | fd2c95bc22a2dc813c4ab7e70200701f1854d144 /gas/config/te-vms.c | |
parent | c55978a67a2e23999c3359a13bb807b665fcb33e (diff) | |
download | gdb-e1fa0163505af867009ea73fc5f705162120e795.zip gdb-e1fa0163505af867009ea73fc5f705162120e795.tar.gz gdb-e1fa0163505af867009ea73fc5f705162120e795.tar.bz2 |
Remove use of alloca.
bfd * warning.m4 (GCC_WARN_CFLAGS): Add -Wstack-usage=262144
* configure: Regenerate.
* elf32-m68hc1x.c (elf32_m68hc11_relocate_section): Replace use of
alloca with call to xmalloc.
* elf32-nds32.c: Likewise.
* elf64-hppa.c: Likewise.
* elfxx-mips.c: Likewise.
* pef.c: Likewise.
* pei-x86_64.c: Likewise.
* som.c: Likewise.
* xsym.c: Likewise.
binutils * dlltool.c: Replace use of alloca with call to xmalloc.
* dllwrap.c: Likewise.
* nlmconv.c: Likewise.
* objdump.c: Likewise.
* resrc.c: Likewise.
* winduni.c: Likewise.
* configure: Regenerate.
gas * atof-generic.c: Replace use of alloca with call to xmalloc.
* cgen.c: Likewise.
* dwarf2dbg.c: Likewise.
* macro.c: Likewise.
* remap.c: Likewise.
* stabs.c: Likewise.
* symbols.c: Likewise.
* config/obj-elf.c: Likewise.
* config/tc-aarch64.c: Likewise.
* config/tc-arc.c: Likewise.
* config/tc-arm.c: Likewise.
* config/tc-avr.c: Likewise.
* config/tc-ia64.c: Likewise.
* config/tc-mips.c: Likewise.
* config/tc-msp430.c: Likewise.
* config/tc-nds32.c: Likewise.
* config/tc-ppc.c: Likewise.
* config/tc-sh.c: Likewise.
* config/tc-tic30.c: Likewise.
* config/tc-tic54x.c: Likewise.
* config/tc-xstormy16.c: Likewise.
* config/te-vms.c: Likewise.
* configure: Regenerate.
ld * emultempl/msp430.em: Replace use of alloca with call to xmalloc.
* plugin.c: Likewise.
* pe-dll.c: Likewise.
Diffstat (limited to 'gas/config/te-vms.c')
-rw-r--r-- | gas/config/te-vms.c | 58 |
1 files changed, 43 insertions, 15 deletions
diff --git a/gas/config/te-vms.c b/gas/config/te-vms.c index 884e0a3..36752c3 100644 --- a/gas/config/te-vms.c +++ b/gas/config/te-vms.c @@ -115,7 +115,8 @@ vms_file_stats_name (const char *dirname, char *rfo, int *ver) { - char fullname[strlen (dirname) + strlen (filename) + 1]; + char * fullname; + #ifdef VMS struct FAB fab; struct NAM nam; @@ -168,9 +169,7 @@ vms_file_stats_name (const char *dirname, return 0; } - strcpy (fullname, dirname); - strcat (fullname, filename); - + fullname = concat (dirname, filename, NULL); tryfile = to_vms_file_spec (fullname); /* Allocate and initialize a FAB and NAM structures. */ @@ -188,14 +187,20 @@ vms_file_stats_name (const char *dirname, /* Validate filespec syntax and device existence. */ status = SYS$PARSE (&fab, 0, 0); if ((status & 1) != 1) - return 1; + { + free (fullname); + return 1; + } file.string[nam.nam$b_esl] = 0; /* Find matching filespec. */ status = SYS$SEARCH (&fab, 0, 0); if ((status & 1) != 1) - return 1; + { + free (fullname); + return 1; + } file.string[nam.nam$b_esl] = 0; result.string[result.length=nam.nam$b_rsl] = 0; @@ -206,7 +211,10 @@ vms_file_stats_name (const char *dirname, chan = 0; status = SYS$ASSIGN (&devicedsc, &chan, 0, 0, 0); if ((status & 1) != 1) - return 1; + { + free (fullname); + return 1; + } /* Initialize the FIB and fill in the directory id field. */ memset (&fib, 0, sizeof (fib)); @@ -224,22 +232,39 @@ vms_file_stats_name (const char *dirname, = SYS$QIOW (0, chan, IO$_ACCESS|IO$M_ACCESS, &iosb, 0, 0, &fibdsc, &filedsc, &result.length, &resultdsc, &atrlst, 0); if ((status & 1) != 1) - return 1; + { + free (fullname); + return 1; + } + if ((iosb.status & 1) != 1) - return 1; + { + free (fullname); + return 1; + } result.string[result.length] = 0; status = SYS$QIOW (0, chan, IO$_DEACCESS, &iosb, 0, 0, &fibdsc, 0, 0, 0, &atrlst, 0); if ((status & 1) != 1) - return 1; + { + free (fullname); + return 1; + } + if ((iosb.status & 1) != 1) - return 1; + { + free (fullname); + return 1; + } /* Deassign the channel and exit. */ status = SYS$DASSGN (chan); if ((status & 1) != 1) - return 1; + { + free (fullname); + return 1; + } if (cdt) *cdt = create; if (siz) *siz = (512 * 65536 * recattr.fat$w_efblkh) + @@ -253,11 +278,13 @@ vms_file_stats_name (const char *dirname, struct tm *ts; long long gmtoff, secs, nsecs; - strcpy (fullname, dirname); - strcat (fullname, filename); + fullname = concat (dirname, filename, NULL); if ((stat (fullname, &buff)) != 0) - return 1; + { + free (fullname); + return 1; + } if (cdt) { @@ -308,6 +335,7 @@ vms_file_stats_name (const char *dirname, *ver = 1; #endif /* VMS */ + free (fullname); return 0; } |