--- src/core/settings.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/src/core/settings.c b/src/core/settings.c index c306054..b4ccedf 100644 --- a/src/core/settings.c +++ b/src/core/settings.c @@ -1344,12 +1344,19 @@ int storef_setting ( struct settings *settings, const struct setting *setting, /* Parse formatted value */ check_len = setting_parse ( setting->type, value, raw, raw_len ); - assert ( check_len == raw_len ); + if ( check_len != raw_len ) { + if (check_len < 0) + rc = check_len; + else + rc = -EINVAL; + goto err_einval; + } /* Store raw value */ if ( ( rc = store_setting ( settings, setting, raw, raw_len ) ) != 0 ) goto err_store; + err_einval: err_store: free ( raw ); err_alloc_raw: -- 2.8.0.rc3.226.g39d4020 _______________________________________________ ipxe-devel mailing list ipxe-devel@lists.ipxe.org https://lists.ipxe.org/mailman/listinfo.cgi/ipxe-devel