]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
homed: fix copypasta in openssl calls
authorLuca Boccassi <luca.boccassi@gmail.com>
Thu, 12 Mar 2026 20:39:23 +0000 (20:39 +0000)
committerLuca Boccassi <luca.boccassi@gmail.com>
Fri, 13 Mar 2026 10:23:36 +0000 (10:23 +0000)
decrypted_size/encrypted_size are sizes, not pointers to buffers

Reported on yeswehack.com as:
YWH-PGM9780-134

Follow-up for 70a5db5822c8056b53d9a4a9273ad12cb5f87a92

src/home/homework-fscrypt.c

index 1c700999825ba2d77f8425b0cf6c773f222a2c88..c2134142ded6cde3b6280070f7f3a286745da101 100644 (file)
@@ -256,7 +256,7 @@ static int fscrypt_slot_try_one(
 
         assert((size_t) decrypted_size_out1 <= decrypted_size);
 
-        if (EVP_DecryptFinal_ex(context, (uint8_t*) decrypted_size + decrypted_size_out1, &decrypted_size_out2) != 1)
+        if (EVP_DecryptFinal_ex(context, (uint8_t*) decrypted + decrypted_size_out1, &decrypted_size_out2) != 1)
                 return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Failed to finish decryption of volume key.");
 
         assert((size_t) decrypted_size_out1 + (size_t) decrypted_size_out2 < decrypted_size);
@@ -520,7 +520,7 @@ static int fscrypt_slot_set(
 
         assert((size_t) encrypted_size_out1 <= encrypted_size);
 
-        if (EVP_EncryptFinal_ex(context, (uint8_t*) encrypted_size + encrypted_size_out1, &encrypted_size_out2) != 1)
+        if (EVP_EncryptFinal_ex(context, (uint8_t*) encrypted + encrypted_size_out1, &encrypted_size_out2) != 1)
                 return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Failed to finish encryption of volume key.");
 
         assert((size_t) encrypted_size_out1 + (size_t) encrypted_size_out2 < encrypted_size);