Fix LUKS2_config_get_requirements prototype.

It never returns any error. Make it void.
This commit is contained in:
Ondrej Kozina
2025-04-25 15:49:19 +02:00
committed by Milan Broz
parent 221d6ac345
commit fa84cb8a55
5 changed files with 15 additions and 31 deletions

View File

@@ -438,7 +438,7 @@ int LUKS2_config_set_flags(struct crypt_device *cd, struct luks2_hdr *hdr, uint3
/* /*
* Requirements for device activation or header modification * Requirements for device activation or header modification
*/ */
int LUKS2_config_get_requirements(struct crypt_device *cd, struct luks2_hdr *hdr, uint32_t *reqs); void LUKS2_config_get_requirements(struct crypt_device *cd, struct luks2_hdr *hdr, uint32_t *reqs);
int LUKS2_config_set_requirements(struct crypt_device *cd, struct luks2_hdr *hdr, uint32_t reqs, bool commit); int LUKS2_config_set_requirements(struct crypt_device *cd, struct luks2_hdr *hdr, uint32_t reqs, bool commit);
int LUKS2_config_set_requirement_version(struct crypt_device *cd, struct luks2_hdr *hdr, uint32_t req_id, uint8_t req_version, bool commit); int LUKS2_config_set_requirement_version(struct crypt_device *cd, struct luks2_hdr *hdr, uint32_t req_id, uint8_t req_version, bool commit);

View File

@@ -643,14 +643,12 @@ static int validate_reencrypt_segments(struct crypt_device *cd, json_object *hdr
{ {
json_object *jobj, *jobj_backup_previous = NULL, *jobj_backup_final = NULL; json_object *jobj, *jobj_backup_previous = NULL, *jobj_backup_final = NULL;
uint32_t reqs; uint32_t reqs;
int i, r; int i;
struct luks2_hdr dummy = { struct luks2_hdr dummy = {
.jobj = hdr_jobj .jobj = hdr_jobj
}; };
r = LUKS2_config_get_requirements(cd, &dummy, &reqs); LUKS2_config_get_requirements(cd, &dummy, &reqs);
if (r)
return 1;
if (reqs_reencrypt_online(reqs)) { if (reqs_reencrypt_online(reqs)) {
for (i = first_backup; i < segments_count; i++) { for (i = first_backup; i < segments_count; i++) {
@@ -1457,9 +1455,7 @@ int LUKS2_hdr_restore(struct crypt_device *cd, struct luks2_hdr *hdr,
r = LUKS2_hdr_read(cd, &tmp_hdr, 0); r = LUKS2_hdr_read(cd, &tmp_hdr, 0);
if (r == 0) { if (r == 0) {
log_dbg(cd, "Device %s already contains LUKS2 header, checking UUID and requirements.", device_path(device)); log_dbg(cd, "Device %s already contains LUKS2 header, checking UUID and requirements.", device_path(device));
r = LUKS2_config_get_requirements(cd, &tmp_hdr, &reqs); LUKS2_config_get_requirements(cd, &tmp_hdr, &reqs);
if (r)
goto out;
if (memcmp(tmp_hdr.uuid, hdr_file.uuid, LUKS2_UUID_L)) if (memcmp(tmp_hdr.uuid, hdr_file.uuid, LUKS2_UUID_L))
diff_uuid = 1; diff_uuid = 1;
@@ -1764,7 +1760,7 @@ static const struct requirement_flag *stored_requirement_name_by_id(struct luks2
/* /*
* returns count of requirements (past cryptsetup 2.0 release) * returns count of requirements (past cryptsetup 2.0 release)
*/ */
int LUKS2_config_get_requirements(struct crypt_device *cd, struct luks2_hdr *hdr, uint32_t *reqs) void LUKS2_config_get_requirements(struct crypt_device *cd, struct luks2_hdr *hdr, uint32_t *reqs)
{ {
json_object *jobj_mandatory, *jobj; json_object *jobj_mandatory, *jobj;
int i, len; int i, len;
@@ -1777,11 +1773,11 @@ int LUKS2_config_get_requirements(struct crypt_device *cd, struct luks2_hdr *hdr
jobj_mandatory = mandatory_requirements_jobj(hdr); jobj_mandatory = mandatory_requirements_jobj(hdr);
if (!jobj_mandatory) if (!jobj_mandatory)
return 0; return;
len = (int) json_object_array_length(jobj_mandatory); len = (int) json_object_array_length(jobj_mandatory);
if (len <= 0) if (len <= 0)
return 0; return;
log_dbg(cd, "LUKS2 requirements detected:"); log_dbg(cd, "LUKS2 requirements detected:");
@@ -1792,8 +1788,6 @@ int LUKS2_config_get_requirements(struct crypt_device *cd, struct luks2_hdr *hdr
reqs_unknown(req->flag) ? "un" : ""); reqs_unknown(req->flag) ? "un" : "");
*reqs |= req->flag; *reqs |= req->flag;
} }
return 0;
} }
int LUKS2_config_set_requirements(struct crypt_device *cd, struct luks2_hdr *hdr, uint32_t reqs, bool commit) int LUKS2_config_set_requirements(struct crypt_device *cd, struct luks2_hdr *hdr, uint32_t reqs, bool commit)
@@ -2308,12 +2302,7 @@ crypt_reencrypt_info LUKS2_reencrypt_status(struct luks2_hdr *hdr)
{ {
uint32_t reqs; uint32_t reqs;
/* LUKS2_config_get_requirements(NULL, hdr, &reqs);
* Any unknown requirement or offline reencryption should abort
* anything related to online-reencryption handling
*/
if (LUKS2_config_get_requirements(NULL, hdr, &reqs))
return CRYPT_REENCRYPT_INVALID;
if (!reqs_reencrypt_online(reqs)) if (!reqs_reencrypt_online(reqs))
return CRYPT_REENCRYPT_NONE; return CRYPT_REENCRYPT_NONE;
@@ -2980,13 +2969,8 @@ out:
int LUKS2_unmet_requirements(struct crypt_device *cd, struct luks2_hdr *hdr, uint64_t reqs_mask, int quiet) int LUKS2_unmet_requirements(struct crypt_device *cd, struct luks2_hdr *hdr, uint64_t reqs_mask, int quiet)
{ {
uint32_t reqs; uint32_t reqs;
int r = LUKS2_config_get_requirements(cd, hdr, &reqs);
if (r) { LUKS2_config_get_requirements(cd, hdr, &reqs);
if (!quiet)
log_err(cd, _("Failed to read LUKS2 requirements."));
return r;
}
/* do not mask unknown requirements check */ /* do not mask unknown requirements check */
if (reqs_unknown(reqs)) { if (reqs_unknown(reqs)) {

View File

@@ -847,8 +847,7 @@ int LUKS2_keyslots_validate(struct crypt_device *cd, json_object *hdr_jobj)
if (!json_object_object_get_ex(hdr_jobj, "keyslots", &jobj_keyslots)) if (!json_object_object_get_ex(hdr_jobj, "keyslots", &jobj_keyslots))
return -EINVAL; return -EINVAL;
if (LUKS2_config_get_requirements(cd, &dummy, &reqs)) LUKS2_config_get_requirements(cd, &dummy, &reqs);
return -EINVAL;
json_object_object_foreach(jobj_keyslots, slot, val) { json_object_object_foreach(jobj_keyslots, slot, val) {
keyslot = atoi(slot); keyslot = atoi(slot);

View File

@@ -1482,8 +1482,7 @@ static int reencrypt_update_flag(struct crypt_device *cd, uint8_t version,
return LUKS2_config_set_requirement_version(cd, hdr, CRYPT_REQUIREMENT_ONLINE_REENCRYPT, version, commit); return LUKS2_config_set_requirement_version(cd, hdr, CRYPT_REQUIREMENT_ONLINE_REENCRYPT, version, commit);
} }
if (LUKS2_config_get_requirements(cd, hdr, &reqs)) LUKS2_config_get_requirements(cd, hdr, &reqs);
return -EINVAL;
reqs &= ~CRYPT_REQUIREMENT_ONLINE_REENCRYPT; reqs &= ~CRYPT_REQUIREMENT_ONLINE_REENCRYPT;

View File

@@ -7089,8 +7089,10 @@ int crypt_persistent_flags_get(struct crypt_device *cd, crypt_flags_type type, u
if (type == CRYPT_FLAGS_ACTIVATION) if (type == CRYPT_FLAGS_ACTIVATION)
return LUKS2_config_get_flags(cd, &cd->u.luks2.hdr, flags); return LUKS2_config_get_flags(cd, &cd->u.luks2.hdr, flags);
if (type == CRYPT_FLAGS_REQUIREMENTS) if (type == CRYPT_FLAGS_REQUIREMENTS) {
return LUKS2_config_get_requirements(cd, &cd->u.luks2.hdr, flags); LUKS2_config_get_requirements(cd, &cd->u.luks2.hdr, flags);
return 0;
}
return -EINVAL; return -EINVAL;
} }