base64: fix possible null pointer dereference
authorPetr Štetiar <ynezz@true.cz>
Tue, 19 Nov 2019 16:16:40 +0000 (17:16 +0100)
committerPetr Štetiar <ynezz@true.cz>
Sun, 24 Nov 2019 12:26:58 +0000 (13:26 +0100)
commit0003ea9c45cc8d2f57af760a92a35f371649714f
tree00c4341dec1ab48796be9283df31295a3232aa28
parent8baeeea1f52d7081aac81d80fdb55b8749d9392e
base64: fix possible null pointer dereference

clang-10 analyzer reports following:

 base64.c:325:20: warning: Array access (from variable 'target') results in a null pointer dereference
                 target[tarindex] = 0;
                 ~~~~~~           ^

and prepared test case confirms it:

 Invalid write of size 1
    at 0x4E4463F: b64_decode (base64.c:325)
    by 0x40088C: test_invalid_inputs (tests/test-base64.c:26)
    by 0x40088C: main (tests/test-base64.c:32)
  Address 0x1 is not stack'd, malloc'd or (recently) free'd

 Process terminating with default action of signal 11 (SIGSEGV)
  Access not within mapped region at address 0x1
    at 0x4E4463F: b64_decode (base64.c:325)
    by 0x40088C: test_invalid_inputs (tests/test-base64.c:26)
    by 0x40088C: main (tests/test-base64.c:32)

Signed-off-by: Petr Štetiar <ynezz@true.cz>
base64.c
tests/cram/test_base64.t
tests/test-b64_decode.c [new file with mode: 0644]
tests/test-b64_encode.c [new file with mode: 0644]