summaryrefslogtreecommitdiffstats
path: root/eurephiadm/commands/adminaccess.c
diff options
context:
space:
mode:
Diffstat (limited to 'eurephiadm/commands/adminaccess.c')
-rw-r--r--eurephiadm/commands/adminaccess.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/eurephiadm/commands/adminaccess.c b/eurephiadm/commands/adminaccess.c
index 4b19c05..cb6078d 100644
--- a/eurephiadm/commands/adminaccess.c
+++ b/eurephiadm/commands/adminaccess.c
@@ -275,11 +275,13 @@ int grant_revoke(eurephiaCTX *ctx, eurephiaSESSION *sess, eurephiaVALUES *cfg, i
case 'i':
if( f_uid > 0 ) {
fprintf(stderr, "%s: User id can only be set once\n", MODULE);
- return 1;
+ rc = 1;
+ goto error;
}
if( atoi_nullsafe(optargs[0]) < 1 ) {
fprintf(stderr, "%s: User ID must be a positive number (>0)\n", MODULE);
- return 1;
+ rc = 1;
+ goto error;
}
f_uid++;
xmlNewChild(fmap_n, NULL, (xmlChar *) "uid", (xmlChar *) optargs[0]);
@@ -288,7 +290,8 @@ int grant_revoke(eurephiaCTX *ctx, eurephiaSESSION *sess, eurephiaVALUES *cfg, i
case 'a':
if( f_acl > 0 ) {
fprintf(stderr, "%s: Access level can only be set once\n", MODULE);
- return 1;
+ rc = 1;
+ goto error;
}
f_acl++;
xmlNewChild(fmap_n, NULL, (xmlChar *) "accesslevel", (xmlChar *) optargs[0]);
@@ -297,7 +300,8 @@ int grant_revoke(eurephiaCTX *ctx, eurephiaSESSION *sess, eurephiaVALUES *cfg, i
case 'I':
if( f_intf > 0 ) {
fprintf(stderr, "%s: Admin interface indicator can only be set once\n", MODULE);
- return 1;
+ rc = 1;
+ goto error;
}
f_intf++;
xmlNewChild(fmap_n, NULL, (xmlChar *) "interface", (xmlChar *) optargs[0]);
@@ -305,10 +309,12 @@ int grant_revoke(eurephiaCTX *ctx, eurephiaSESSION *sess, eurephiaVALUES *cfg, i
case 'h':
display_adminaccess_help(actmode);
- return 0;
+ rc = 0;
+ goto error;
default:
- return 1;
+ rc = 1;
+ goto error;
}
}