fdt: Update functions which write to an FDT to return -ENOSPC
When writing values into an FDT it is possible that there will be insufficient space. If the caller gets a useful error then it can potentially deal with the situation. Adjust these functions to return -ENOSPC when the FDT is full. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
@@ -429,20 +429,30 @@ int rsa_add_verify_data(struct image_sign_info *info, void *keydest)
|
||||
|
||||
ret = fdt_setprop_string(keydest, node, "key-name-hint",
|
||||
info->keyname);
|
||||
ret |= fdt_setprop_u32(keydest, node, "rsa,num-bits", bits);
|
||||
ret |= fdt_setprop_u32(keydest, node, "rsa,n0-inverse", n0_inv);
|
||||
ret |= fdt_add_bignum(keydest, node, "rsa,modulus", modulus, bits);
|
||||
ret |= fdt_add_bignum(keydest, node, "rsa,r-squared", r_squared, bits);
|
||||
ret |= fdt_setprop_string(keydest, node, FIT_ALGO_PROP,
|
||||
info->algo->name);
|
||||
if (!ret)
|
||||
ret = fdt_setprop_u32(keydest, node, "rsa,num-bits", bits);
|
||||
if (!ret)
|
||||
ret = fdt_setprop_u32(keydest, node, "rsa,n0-inverse", n0_inv);
|
||||
if (!ret) {
|
||||
ret = fdt_add_bignum(keydest, node, "rsa,modulus", modulus,
|
||||
bits);
|
||||
}
|
||||
if (!ret) {
|
||||
ret = fdt_add_bignum(keydest, node, "rsa,r-squared", r_squared,
|
||||
bits);
|
||||
}
|
||||
if (!ret) {
|
||||
ret = fdt_setprop_string(keydest, node, FIT_ALGO_PROP,
|
||||
info->algo->name);
|
||||
}
|
||||
if (info->require_keys) {
|
||||
fdt_setprop_string(keydest, node, "required",
|
||||
info->require_keys);
|
||||
ret = fdt_setprop_string(keydest, node, "required",
|
||||
info->require_keys);
|
||||
}
|
||||
BN_free(modulus);
|
||||
BN_free(r_squared);
|
||||
if (ret)
|
||||
return -EIO;
|
||||
return ret == FDT_ERR_NOSPACE ? -ENOSPC : -EIO;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user