goto error;
if (option && !uci_validate_name(option))
goto error;
- if ((rename || !delete) && !uci_validate_name(value))
+ if ((rename || (!option && !delete)) && !uci_validate_name(value))
goto error;
if (rename)
UCI_INTERNAL(uci_load, ctx, name, &p);
UCI_TRAP_RESTORE(ctx);
+ ctx->errno = 0;
- goto done;
error:
if (name)
free(name);
- UCI_THROW(ctx, ctx->errno);
-done:
+ if (ctx->errno)
+ UCI_THROW(ctx, ctx->errno);
return 0;
}