diff options
author | rwatson <rwatson@FreeBSD.org> | 2001-01-09 05:45:03 +0000 |
---|---|---|
committer | rwatson <rwatson@FreeBSD.org> | 2001-01-09 05:45:03 +0000 |
commit | 0a3118c2475e3bd9524360c7422d43988fc761a1 (patch) | |
tree | f58d6adb33d18446b701928092d020e4461aef2a /lib/libc/posix1e/acl_to_text.c | |
parent | a80aac3d997b53c0312b44faad038b2b9eed16f4 (diff) | |
download | FreeBSD-src-0a3118c2475e3bd9524360c7422d43988fc761a1.zip FreeBSD-src-0a3118c2475e3bd9524360c7422d43988fc761a1.tar.gz |
o acl_from_text.c:
- errno is already set to ENOMEM (as appropriate) when asprintf(),
strdup(), or acl_init() fails
o acl_to_text.c:
- the return value of the initial strdup() is not checked
- errno is already set to ENOMEM (as appropriate) when asprintf
and acl_init() fails
- let the the default: case use 'goto error_label' for consistency
Submitted by: jedgar
Diffstat (limited to 'lib/libc/posix1e/acl_to_text.c')
-rw-r--r-- | lib/libc/posix1e/acl_to_text.c | 29 |
1 files changed, 9 insertions, 20 deletions
diff --git a/lib/libc/posix1e/acl_to_text.c b/lib/libc/posix1e/acl_to_text.c index 0dc3058..bb5a546 100644 --- a/lib/libc/posix1e/acl_to_text.c +++ b/lib/libc/posix1e/acl_to_text.c @@ -60,6 +60,8 @@ acl_to_text(acl_t acl, ssize_t *len_p) acl_perm_t ae_perm, effective_perm, mask_perm; buf = strdup(""); + if (!buf) + return(0); mask_perm = ACL_PERM_BITS; /* effective is regular if no mask */ for (i = 0; i < acl->acl_cnt; i++) @@ -79,10 +81,8 @@ acl_to_text(acl_t acl, ssize_t *len_p) goto error_label; len = asprintf(&tmpbuf, "%suser::%s\n", buf, perm_buf); - if (len == -1) { - errno = ENOMEM; + if (len == -1) goto error_label; - } free(buf); buf = tmpbuf; break; @@ -113,10 +113,8 @@ acl_to_text(acl_t acl, ssize_t *len_p) len = asprintf(&tmpbuf, "%suser:%s:%s\n", buf, name_buf, perm_buf); } - if (len == -1) { - errno = ENOMEM; + if (len == -1) goto error_label; - } free(buf); buf = tmpbuf; break; @@ -141,10 +139,8 @@ acl_to_text(acl_t acl, ssize_t *len_p) len = asprintf(&tmpbuf, "%sgroup::%s\n", buf, perm_buf); } - if (len == -1) { - errno = ENOMEM; + if (len == -1) goto error_label; - } free(buf); buf = tmpbuf; break; @@ -174,10 +170,8 @@ acl_to_text(acl_t acl, ssize_t *len_p) len = asprintf(&tmpbuf, "%sgroup:%s:%s\n", buf, name_buf, perm_buf); } - if (len == -1) { - errno = ENOMEM; + if (len == -1) goto error_label; - } free(buf); buf = tmpbuf; break; @@ -190,10 +184,8 @@ acl_to_text(acl_t acl, ssize_t *len_p) len = asprintf(&tmpbuf, "%smask::%s\n", buf, perm_buf); - if (len == -1) { - errno = ENOMEM; + if (len == -1) goto error_label; - } free(buf); buf = tmpbuf; break; @@ -206,18 +198,15 @@ acl_to_text(acl_t acl, ssize_t *len_p) len = asprintf(&tmpbuf, "%sother::%s\n", buf, perm_buf); - if (len == -1) { - errno = ENOMEM; + if (len == -1) goto error_label; - } free(buf); buf = tmpbuf; break; default: - free(buf); errno = EINVAL; - return (0); + goto error_label; } } |