NSEC3HashName() is used as a boolean return, so actually convert it to this, and avoid returning pointer to the stack that would not be dereferenced. Index: external/apache2/mDNSResponder/dist/mDNSCore/DNSCommon.c =================================================================== RCS file: /cvsroot/src/external/apache2/mDNSResponder/dist/mDNSCore/DNSCommon.c,v retrieving revision 1.9 diff -p -u -r1.9 DNSCommon.c --- external/apache2/mDNSResponder/dist/mDNSCore/DNSCommon.c 11 Apr 2018 18:33:48 -0000 1.9 +++ external/apache2/mDNSResponder/dist/mDNSCore/DNSCommon.c 12 Apr 2021 21:11:44 -0000 @@ -1160,7 +1160,7 @@ mDNSexport mStatus DNSNameToLowerCase(do return mStatus_NoError; } -mDNSexport const mDNSu8 *NSEC3HashName(const domainname *name, rdataNSEC3 *nsec3, const mDNSu8 *AnonData, int AnonDataLen, +mDNSexport mDNSBool NSEC3HashName(const domainname *name, rdataNSEC3 *nsec3, const mDNSu8 *AnonData, int AnonDataLen, const mDNSu8 hash[NSEC3_MAX_HASH_LEN], int *dlen) { AlgContext *ctx; @@ -1175,7 +1175,7 @@ mDNSexport const mDNSu8 *NSEC3HashName(c if (DNSNameToLowerCase((domainname *)name, &lname) != mStatus_NoError) { LogMsg("NSEC3HashName: ERROR!! DNSNameToLowerCase failed"); - return mDNSNULL; + return mDNSfalse; } digest = lname.c; @@ -1190,7 +1190,7 @@ mDNSexport const mDNSu8 *NSEC3HashName(c if (!ctx) { LogMsg("NSEC3HashName: ERROR!! Cannot allocate context"); - return mDNSNULL; + return mDNSfalse; } AlgAdd(ctx, digest, digestlen); @@ -1208,7 +1208,7 @@ mDNSexport const mDNSu8 *NSEC3HashName(c AlgDestroy(ctx); } *dlen = digestlen; - return digest; + return mDNStrue; } // Notes on UTF-8: Index: external/apache2/mDNSResponder/dist/mDNSCore/DNSCommon.h =================================================================== RCS file: /cvsroot/src/external/apache2/mDNSResponder/dist/mDNSCore/DNSCommon.h,v retrieving revision 1.2 diff -p -u -r1.2 DNSCommon.h --- external/apache2/mDNSResponder/dist/mDNSCore/DNSCommon.h 11 Apr 2018 18:33:48 -0000 1.2 +++ external/apache2/mDNSResponder/dist/mDNSCore/DNSCommon.h 12 Apr 2021 21:11:44 -0000 @@ -231,7 +231,7 @@ extern mDNSu8 *putDNSSECOption(DNSMessag extern int baseEncode(char *buffer, int blen, const mDNSu8 *data, int len, int encAlg); extern void NSEC3Parse(const ResourceRecord *const rr, mDNSu8 **salt, int *hashLength, mDNSu8 **nxtName, int *bitmaplen, mDNSu8 **bitmap); -extern const mDNSu8 *NSEC3HashName(const domainname *name, rdataNSEC3 *nsec3, const mDNSu8 *AnonData, int AnonDataLen, +extern mDNSBool NSEC3HashName(const domainname *name, rdataNSEC3 *nsec3, const mDNSu8 *AnonData, int AnonDataLen, const mDNSu8 hash[NSEC3_MAX_HASH_LEN], int *dlen); // ***************************************************************************