At Wed, 10 Feb 2021 12:13:44 +0900 (JST), Kyotaro Horiguchi <horikyota....@gmail.com> wrote in > At Tue, 9 Feb 2021 22:01:45 -0300, Ranier Vilela <ranier...@gmail.com> wrote > in > > Hi Hackers, > > > > Per Coverity. > > > > Coverity complaints about pg_cryptohash_final function. > > And I agree with Coverity, it's a bad design. > > Its allows this: > > > > #define MY_RESULT_LENGTH 32 > > > > function pgtest(char * buffer, char * text) { > > pg_cryptohash_ctx *ctx; > > uint8 digest[MY_RESULT_LENGTH]; > > > > ctx = pg_cryptohash_create(PG_SHA512); > > pg_cryptohash_init(ctx); > > pg_cryptohash_update(ctx, (uint8 *) buffer, text); > > pg_cryptohash_final(ctx, digest); // <-- CID 1446240 (#1 of 1): > > Out-of-bounds access (OVERRUN) > > pg_cryptohash_free(ctx); > > return > > } > > > > Attached has a patch with suggestions to make things better. > > I'm not sure about the details, but it looks like broken. > > make complains for inconsistent prototypes abd cryptohahs.c and sha1.c > doesn't seem to agree on its interface.
Sorry, my messages was broken. make complains for inconsistent prototypes, and cryptohahs.c and sha1.c don't seem to agree on the interface of pg_sha1_final. regards. -- Kyotaro Horiguchi NTT Open Source Software Center