From: Christos Zoulas Date: Mon, 10 Jun 2019 12:15:23 +0000 (+0100) Subject: Tidy up ar_open by using asprintf to replace xmalloc and sprintf. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=2e02f29632218fc24d71fbbefc368d551d0528a7;p=binutils-gdb.git 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. --- diff --git a/binutils/ChangeLog b/binutils/ChangeLog index c98ed943508..b845caca035 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,9 @@ +2019-06-10 Christos Zoulas + + PR 24649 + * arsup.c (ar_open): Use asprintf in place of xmalloc and + sprintf. + 2019-06-03 Nick Clifton Revert: diff --git a/binutils/arsup.c b/binutils/arsup.c index 75549bba118..0836496180a 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)