summaryrefslogtreecommitdiff
path: root/libarchive/archive_acl.c
diff options
context:
space:
mode:
authorPavel Raiskup <praiskup@redhat.com>2018-11-23 13:48:34 +0100
committerPavel Raiskup <praiskup@redhat.com>2018-11-23 14:28:32 +0100
commitecfd245fbd1b0000540c75da56ad25201d5393b4 (patch)
treed171770248cafe875abf125edce4a8c66a62e137 /libarchive/archive_acl.c
parentc114bb9fb585e7d74158afa7afbe8c44922479de (diff)
downloadlibarchive-ecfd245fbd1b0000540c75da56ad25201d5393b4.tar.gz
Fix a few obvious resource leaks and strcpy() misuses
Per Coverity report.
Diffstat (limited to 'libarchive/archive_acl.c')
-rw-r--r--libarchive/archive_acl.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/libarchive/archive_acl.c b/libarchive/archive_acl.c
index 9941d2f6..6ce7ab66 100644
--- a/libarchive/archive_acl.c
+++ b/libarchive/archive_acl.c
@@ -753,8 +753,10 @@ archive_acl_to_text_w(struct archive_acl *acl, ssize_t *text_len, int flags,
append_entry_w(&wp, prefix, ap->type, ap->tag, flags,
wname, ap->permset, id);
count++;
- } else if (r < 0 && errno == ENOMEM)
+ } else if (r < 0 && errno == ENOMEM) {
+ free(ws);
return (NULL);
+ }
}
/* Add terminating character */
@@ -975,8 +977,10 @@ archive_acl_to_text_l(struct archive_acl *acl, ssize_t *text_len, int flags,
prefix = NULL;
r = archive_mstring_get_mbs_l(
&ap->name, &name, &len, sc);
- if (r != 0)
+ if (r != 0) {
+ free(s);
return (NULL);
+ }
if (count > 0)
*p++ = separator;
if (name == NULL ||