mirror of
https://github.com/nodejs/node.git
synced 2024-12-01 16:10:02 +01:00
deps: patch to fix *.onion MX query on c-ares
c-ares rejects *.onion MX query but forgot to set `*bufp` to NULL. This will occur SegmentFault when free `*bufp`. I make this quick fix and then will make a PR for c-ares either. PR-URL: https://github.com/nodejs/node/pull/25840 Fixes: https://github.com/nodejs/node/issues/25839 Refs: https://github.com/c-ares/c-ares/blob/955df98/ares_create_query.c#L97-L103 Refs: https://github.com/c-ares/c-ares/blob/955df98/ares_query.c#L124 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: James M Snell <jasnell@gmail.com>
This commit is contained in:
parent
686043e76e
commit
4cc9b5f285
8
deps/cares/src/ares_create_query.c
vendored
8
deps/cares/src/ares_create_query.c
vendored
@ -94,14 +94,14 @@ int ares_create_query(const char *name, int dnsclass, int type,
|
||||
size_t buflen;
|
||||
unsigned char *buf;
|
||||
|
||||
/* Per RFC 7686, reject queries for ".onion" domain names with NXDOMAIN. */
|
||||
if (ares__is_onion_domain(name))
|
||||
return ARES_ENOTFOUND;
|
||||
|
||||
/* Set our results early, in case we bail out early with an error. */
|
||||
*buflenp = 0;
|
||||
*bufp = NULL;
|
||||
|
||||
/* Per RFC 7686, reject queries for ".onion" domain names with NXDOMAIN. */
|
||||
if (ares__is_onion_domain(name))
|
||||
return ARES_ENOTFOUND;
|
||||
|
||||
/* Allocate a memory area for the maximum size this packet might need. +2
|
||||
* is for the length byte and zero termination if no dots or ecscaping is
|
||||
* used.
|
||||
|
@ -314,3 +314,13 @@ common.expectsError(() => {
|
||||
code: 'ERR_INVALID_CALLBACK',
|
||||
type: TypeError
|
||||
});
|
||||
|
||||
{
|
||||
dns.resolveMx('foo.onion', function(err) {
|
||||
assert.deepStrictEqual(err.errno, 'ENOTFOUND');
|
||||
assert.deepStrictEqual(err.code, 'ENOTFOUND');
|
||||
assert.deepStrictEqual(err.syscall, 'queryMx');
|
||||
assert.deepStrictEqual(err.hostname, 'foo.onion');
|
||||
assert.deepStrictEqual(err.message, 'queryMx ENOTFOUND foo.onion');
|
||||
});
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user