uint32_t i;
attribute_t *sattr, *dattr;
attribute_array_t *dup;
- int err;
+ int err = ENOMEM;
MRP_ASSERT(dim < ARRAY_MAX && arr, "invalid argument");
size = sizeof(attribute_array_t) + (sizeof(attribute_t) * (dim + 1));
if (!(dup = mrp_allocz(size))) {
- err = ENOMEM;
goto failed;
}
dattr = dup->elems + i;
if (!(dattr->name = mrp_strdup(sattr->name))) {
- err = ENOMEM;
goto failed;
}
switch ((dattr->type = sattr->type)) {
case 's':
if (!(dattr->v.string = mrp_strdup(sattr->v.string))) {
- err = ENOMEM;
goto failed;
}
break;
case SIGHUP:
case SIGTERM:
case SIGINT:
- mrp_mainloop_quit(ml, 0);
+ if (ml)
+ mrp_mainloop_quit(ml, 0);
break;
default:
client->prompt = false;
client->rset_id = INVALID_ID;
+ if (!client->ml || !client->name)
+ exit(1);
+
parse_arguments(client, argc, argv);
mrp_add_sighandler(client->ml, SIGHUP , sighandler, client);