diff options
| author | Mattias Andrée <m@maandree.se> | 2026-05-14 22:20:02 +0200 |
|---|---|---|
| committer | Mattias Andrée <m@maandree.se> | 2026-05-14 22:20:02 +0200 |
| commit | f07a9f80fb6f3099d75534c1e64f448d4b397931 (patch) | |
| tree | 30ebf4afafb0e66226fa7f642db083341c8c96e4 /librecrypt_decompose_chain.c | |
| parent | librecrypt.h: add @since (diff) | |
| download | librecrypt-f07a9f80fb6f3099d75534c1e64f448d4b397931.tar.gz librecrypt-f07a9f80fb6f3099d75534c1e64f448d4b397931.tar.bz2 librecrypt-f07a9f80fb6f3099d75534c1e64f448d4b397931.tar.xz | |
Fix minor errors in the test and check that we are not writing out of bounds
Signed-off-by: Mattias Andrée <m@maandree.se>
Diffstat (limited to 'librecrypt_decompose_chain.c')
| -rw-r--r-- | librecrypt_decompose_chain.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/librecrypt_decompose_chain.c b/librecrypt_decompose_chain.c index ae58c6c..9db1d6c 100644 --- a/librecrypt_decompose_chain.c +++ b/librecrypt_decompose_chain.c @@ -46,26 +46,33 @@ main(void) INIT_RESOURCE_TEST(); /* Check HASH_1 with different sizes of `chain` */ + CANARY_FILL(buf); stpcpy(buf, HASH_1); EXPECT(librecrypt_decompose_chain(buf, chain, 0u) == 1u); EXPECT(!strcmp(buf, HASH_1)); + CANARY_CHECK(buf, sizeof(HASH_1)); NULL_OUT(chain); EXPECT(librecrypt_decompose_chain(buf, chain, 1u) == 1u); EXPECT(!strcmp(buf, HASH_1)); EXPECT(chain[0u] == buf); + CANARY_CHECK(buf, sizeof(HASH_1)); NULL_OUT(chain); EXPECT(librecrypt_decompose_chain(buf, chain, ELEMSOF(chain)) == 1u); EXPECT(!strcmp(buf, HASH_1)); EXPECT(chain[0u] == buf); + CANARY_CHECK(buf, sizeof(HASH_1)); /* Check HASH_2 with different sizes of `chain` */ + CANARY_FILL(buf); stpcpy(buf, HASH_2); EXPECT(librecrypt_decompose_chain(buf, chain, 0u) == 3u); EXPECT(!strcmp(buf, HASH_2)); + CANARY_CHECK(buf, sizeof(HASH_2)); NULL_OUT(chain); EXPECT(librecrypt_decompose_chain(buf, chain, 1u) == 3u); EXPECT(!strcmp(buf, HASH_2)); EXPECT(chain[0u] == buf); + CANARY_CHECK(buf, sizeof(HASH_2)); NULL_OUT(chain); EXPECT(librecrypt_decompose_chain(buf, chain, 2u) == 3u); EXPECT(chain[0u] != NULL); @@ -73,6 +80,9 @@ main(void) EXPECT(chain[2u] == NULL); EXPECT(!strcmp(chain[0u], HASH_2_A)); EXPECT(!strcmp(chain[1u], HASH_2_BC)); + CANARY_CHECK(buf, sizeof(HASH_2)); + + CANARY_FILL(buf); stpcpy(buf, HASH_2); NULL_OUT(chain); EXPECT(librecrypt_decompose_chain(buf, chain, ELEMSOF(chain)) == 3u); @@ -83,15 +93,19 @@ main(void) EXPECT(!strcmp(chain[0u], HASH_2_A)); EXPECT(!strcmp(chain[1u], HASH_2_B)); EXPECT(!strcmp(chain[2u], HASH_2_C)); + CANARY_CHECK(buf, sizeof(HASH_2)); /* Check HASH_3 with different sizes of `chain` */ + CANARY_FILL(buf); stpcpy(buf, HASH_3); EXPECT(librecrypt_decompose_chain(buf, chain, 0u) == 5u); EXPECT(!strcmp(buf, HASH_3)); + CANARY_CHECK(buf, sizeof(HASH_3)); NULL_OUT(chain); EXPECT(librecrypt_decompose_chain(buf, chain, 1u) == 5u); EXPECT(!strcmp(buf, HASH_3)); EXPECT(chain[0u] == buf); + CANARY_CHECK(buf, sizeof(HASH_3)); NULL_OUT(chain); EXPECT(librecrypt_decompose_chain(buf, chain, 2u) == 5u); EXPECT(chain[0u] != NULL); @@ -99,6 +113,9 @@ main(void) EXPECT(chain[2u] == NULL); EXPECT(!strcmp(chain[0u], HASH_3_A)); EXPECT(!strcmp(chain[1u], HASH_3_BCDE)); + CANARY_CHECK(buf, sizeof(HASH_3)); + + CANARY_FILL(buf); stpcpy(buf, HASH_3); NULL_OUT(chain); EXPECT(librecrypt_decompose_chain(buf, chain, 3u) == 5u); @@ -109,6 +126,9 @@ main(void) EXPECT(!strcmp(chain[0u], HASH_3_A)); EXPECT(!strcmp(chain[1u], HASH_3_B)); EXPECT(!strcmp(chain[2u], HASH_3_CDE)); + CANARY_CHECK(buf, sizeof(HASH_3)); + + CANARY_FILL(buf); stpcpy(buf, HASH_3); NULL_OUT(chain); EXPECT(librecrypt_decompose_chain(buf, chain, 4u) == 5u); @@ -121,6 +141,9 @@ main(void) EXPECT(!strcmp(chain[1u], HASH_3_B)); EXPECT(!strcmp(chain[2u], HASH_3_C)); EXPECT(!strcmp(chain[3u], HASH_3_DE)); + CANARY_CHECK(buf, sizeof(HASH_3)); + + CANARY_FILL(buf); stpcpy(buf, HASH_3); NULL_OUT(chain); EXPECT(librecrypt_decompose_chain(buf, chain, 5u) == 5u); @@ -135,6 +158,9 @@ main(void) EXPECT(!strcmp(chain[2u], HASH_3_C)); EXPECT(!strcmp(chain[3u], HASH_3_D)); EXPECT(!strcmp(chain[4u], HASH_3_E)); + CANARY_CHECK(buf, sizeof(HASH_3)); + + CANARY_FILL(buf); stpcpy(buf, HASH_3); NULL_OUT(chain); EXPECT(librecrypt_decompose_chain(buf, chain, 6u) == 5u); @@ -149,6 +175,7 @@ main(void) EXPECT(!strcmp(chain[2u], HASH_3_C)); EXPECT(!strcmp(chain[3u], HASH_3_D)); EXPECT(!strcmp(chain[4u], HASH_3_E)); + CANARY_CHECK(buf, sizeof(HASH_3)); STOP_RESOURCE_TEST(); return 0; |
