X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=bfd%2Farchive.c;h=ef71e8a79632c0d4306c091ab3d40a2460fc1e58;hb=refs%2Fheads%2Fsandbox%2Fvbarinov%2Ftizen_6_base;hp=690718e9494cae9cb552d6428e1c3109bcf3a4dd;hpb=6744bcad05396a5901149a202270e523e454769d;p=external%2Fbinutils.git diff --git a/bfd/archive.c b/bfd/archive.c index 690718e..ef71e8a 100644 --- a/bfd/archive.c +++ b/bfd/archive.c @@ -728,7 +728,9 @@ _bfd_get_elt_at_filepos (bfd *archive, file_ptr filepos) else { n_bfd->origin = n_bfd->proxy_origin; - n_bfd->filename = xstrdup (filename); + n_bfd->filename = bfd_strdup (filename); + if (n_bfd->filename == NULL) + goto out; } n_bfd->arelt_data = new_areldata; @@ -745,8 +747,10 @@ _bfd_get_elt_at_filepos (bfd *archive, file_ptr filepos) || _bfd_add_bfd_to_archive_cache (archive, filepos, n_bfd)) return n_bfd; + out: free (new_areldata); n_bfd->arelt_data = NULL; + bfd_close (n_bfd); return NULL; }