X-Git-Url: https://wimlib.net/git/?p=wimlib;a=blobdiff_plain;f=src%2Fregistry.c;h=36ecdd39e231e3f7fe5fd24e4418853cbbce4245;hp=6b7f9815bce7a97b7385741934d83a3176e400a7;hb=4109848cdf4c31d8ea1a410b183478ad4124f15b;hpb=92dd1b3eb612fd975257337098fff73577e8ddf5 diff --git a/src/registry.c b/src/registry.c index 6b7f9815..36ecdd39 100644 --- a/src/registry.c +++ b/src/registry.c @@ -143,6 +143,7 @@ struct data_cell { /* Arbitrary limits for safety */ #define MAX_VALUES 65536 +#define MAX_VALUE_SIZE 1048576 #define MAX_SUBKEYS 65536 #define MAX_SUBKEY_LIST_LEVELS 5 #define MAX_SUBKEY_LISTS 4096 @@ -532,7 +533,7 @@ retrieve_value(const struct regf *regf, const tchar *key_name, is_inline = (data_size & 0x80000000); data_size &= 0x7FFFFFFF; - if (data_size > 1048576) /* Arbitrary limit */ + if (data_size > MAX_VALUE_SIZE) return HIVE_CORRUPT; if (is_inline) {