diff options
Diffstat (limited to 'eurephiadm/commands/adminaccess.c')
-rw-r--r-- | eurephiadm/commands/adminaccess.c | 18 |
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; } } |