summaryrefslogtreecommitdiff
path: root/usr/src/lib/libsec/common/acltext.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/lib/libsec/common/acltext.c')
-rw-r--r--usr/src/lib/libsec/common/acltext.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/usr/src/lib/libsec/common/acltext.c b/usr/src/lib/libsec/common/acltext.c
index 75b0dc7857..a928d580a9 100644
--- a/usr/src/lib/libsec/common/acltext.c
+++ b/usr/src/lib/libsec/common/acltext.c
@@ -61,6 +61,8 @@ extern acl_t *acl_alloc(enum acl_type);
#define PERMS 4
#define ACL_ENTRY_SIZE (ENTRYTYPELEN + LOGNAME_MAX + PERMS)
+#define UPDATE_WHERE where = dstr->aclexport + strlen(dstr->aclexport)
+
struct dynaclstr {
size_t bufsize; /* current size of aclexport */
char *aclexport;
@@ -140,14 +142,13 @@ acltotext(aclent_t *aclp, int aclcnt)
if (passwdp == (struct passwd *)NULL) {
/* put in uid instead */
(void) sprintf(where, "%d", aclp->a_id);
+ UPDATE_WHERE;
} else {
excess = strlen(passwdp->pw_name) - LOGNAME_MAX;
if (excess > 0) {
rtn = increase_length(dstr, excess);
if (rtn == 1) {
- /* reset where */
- where = dstr->aclexport +
- strlen(dstr->aclexport);
+ UPDATE_WHERE;
} else {
free(dstr->aclexport);
free(dstr);
@@ -177,14 +178,13 @@ acltotext(aclent_t *aclp, int aclcnt)
if (groupp == (struct group *)NULL) {
/* put in gid instead */
(void) sprintf(where, "%d", aclp->a_id);
+ UPDATE_WHERE;
} else {
excess = strlen(groupp->gr_name) - LOGNAME_MAX;
if (excess > 0) {
rtn = increase_length(dstr, excess);
if (rtn == 1) {
- /* reset where */
- where = dstr->aclexport +
- strlen(dstr->aclexport);
+ UPDATE_WHERE;
} else {
free(dstr->aclexport);
free(dstr);