summaryrefslogtreecommitdiffstats
path: root/lib/libc/posix1e
diff options
context:
space:
mode:
authorrwatson <rwatson@FreeBSD.org>2001-01-09 05:45:03 +0000
committerrwatson <rwatson@FreeBSD.org>2001-01-09 05:45:03 +0000
commit0a3118c2475e3bd9524360c7422d43988fc761a1 (patch)
treef58d6adb33d18446b701928092d020e4461aef2a /lib/libc/posix1e
parenta80aac3d997b53c0312b44faad038b2b9eed16f4 (diff)
downloadFreeBSD-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')
-rw-r--r--lib/libc/posix1e/acl_from_text.c5
-rw-r--r--lib/libc/posix1e/acl_to_text.c29
2 files changed, 10 insertions, 24 deletions
diff --git a/lib/libc/posix1e/acl_from_text.c b/lib/libc/posix1e/acl_from_text.c
index 72e2f96..d4d9986 100644
--- a/lib/libc/posix1e/acl_from_text.c
+++ b/lib/libc/posix1e/acl_from_text.c
@@ -117,15 +117,12 @@ acl_from_text(const char *buf_p)
/* Local copy we can mess up. */
mybuf_p = strdup(buf_p);
- if (!mybuf_p) {
- errno = ENOMEM;
+ if (!mybuf_p)
return(0);
- }
acl = acl_init(3);
if (!acl) {
free(mybuf_p);
- errno = ENOMEM;
return(0);
}
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;
}
}
OpenPOWER on IntegriCloud