diff options
author | Christos Zoulas <christos@zoulas.com> | 2019-06-10 13:15:23 +0100 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2019-06-10 13:15:23 +0100 |
commit | 2e02f29632218fc24d71fbbefc368d551d0528a7 (patch) | |
tree | 3e0e6fe09179717daf06c0fa971259aabaaa8afa /binutils/arsup.c | |
parent | a3972330f49f81b3bea64af0970d22f42ae56ec3 (diff) | |
download | gdb-2e02f29632218fc24d71fbbefc368d551d0528a7.zip gdb-2e02f29632218fc24d71fbbefc368d551d0528a7.tar.gz gdb-2e02f29632218fc24d71fbbefc368d551d0528a7.tar.bz2 |
Tidy up ar_open by using asprintf to replace xmalloc and sprintf.
PR 24649
* arsup.c (ar_open): Use asprintf in place of xmalloc and
sprintf.
Diffstat (limited to 'binutils/arsup.c')
-rw-r--r-- | binutils/arsup.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/binutils/arsup.c b/binutils/arsup.c index 75549bb..0836496 100644 --- a/binutils/arsup.c +++ b/binutils/arsup.c @@ -149,13 +149,20 @@ maybequit (void) void ar_open (char *name, int t) { - char *tname = (char *) xmalloc (strlen (name) + 10); + char *tname; const char *bname = lbasename (name); real_name = name; /* Prepend tmp- to the beginning, to avoid file-name clashes after truncation on filesystems with limited namespaces (DOS). */ - sprintf (tname, "%.*stmp-%s", (int) (bname - name), name, bname); + if (asprintf (&tname, "%.*stmp-%s", (int) (bname - name), name, bname) == -1) + { + fprintf (stderr, _("%s: Can't allocate memory for temp name (%s)\n"), + program_name, strerror(errno)); + maybequit (); + return; + } + obfd = bfd_openw (tname, NULL); if (!obfd) |