/* install the widgets of the list */
int main(int ac, char **av)
{
- int i;
+ int i, rc;
struct wgt_info *ifo;
LOGAUTH(appname);
verbosity++;
break;
case 'p':
- grant_permission_list(optarg);
+ rc = grant_permission_list(optarg);
+ if (rc < 0) {
+ ERROR("Can't set granted permission list");
+ exit(1);
+ }
break;
case ':':
ERROR("missing argument value");
}
/* add permissions granted for installation */
-void grant_permission_list(const char *list)
+int grant_permission_list(const char *list)
{
struct permission *p;
char *iter, c;
iter[n] = 0;
p = add_permission(iter);
if (!p) {
- ERROR("Can't allocate permission");
- exit(1);
+ errno = ENOMEM;
+ return -1;
}
p->granted = 1;
iter += n;
*iter =c;
iter += strspn(iter, separators);
}
+ return 0;
}
/* checks if the permission 'name' is recorded */
extern int is_standard_permission(const char *name);
extern void reset_permissions();
extern void crop_permissions(unsigned level);
-extern void grant_permission_list(const char *list);
+extern int grant_permission_list(const char *list);
extern int permission_exists(const char *name);
extern int request_permission(const char *name);
extern const char *first_usable_permission();