mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-08-30 22:15:20 +00:00
Merge branch '2898-improve-functions-parameter-validation-in-lib-dns-message-c-to-prevent-accessing-the-1-index' into 'main'
Resolve "Improve functions parameter validation in lib/dns/message.c to prevent accessing the -1 index of an array" Closes #2898 See merge request isc-projects/bind9!5824
This commit is contained in:
@@ -434,7 +434,7 @@ dns_message_pseudosectiontotext(dns_message_t *msg, dns_pseudosection_t section,
|
|||||||
*
|
*
|
||||||
*\li 'target' is a valid buffer.
|
*\li 'target' is a valid buffer.
|
||||||
*
|
*
|
||||||
*\li 'section' is a valid section label.
|
*\li 'section' is a named section label.
|
||||||
*
|
*
|
||||||
* Ensures:
|
* Ensures:
|
||||||
*
|
*
|
||||||
@@ -806,7 +806,7 @@ dns_message_findname(dns_message_t *msg, dns_section_t section,
|
|||||||
* Requires:
|
* Requires:
|
||||||
*\li 'msg' be valid.
|
*\li 'msg' be valid.
|
||||||
*
|
*
|
||||||
*\li 'section' be a valid section.
|
*\li 'section' be a named section.
|
||||||
*
|
*
|
||||||
*\li If a pointer to the name is desired, 'foundname' should be non-NULL.
|
*\li If a pointer to the name is desired, 'foundname' should be non-NULL.
|
||||||
* If it is non-NULL, '*foundname' MUST be NULL.
|
* If it is non-NULL, '*foundname' MUST be NULL.
|
||||||
|
@@ -97,6 +97,8 @@ hexdump(const char *msg, const char *msg2, void *base, size_t len) {
|
|||||||
} else \
|
} else \
|
||||||
isc_buffer_putstr(b, s); \
|
isc_buffer_putstr(b, s); \
|
||||||
}
|
}
|
||||||
|
#define VALID_NAMED_PSEUDOSECTION(s) \
|
||||||
|
(((s) > DNS_PSEUDOSECTION_ANY) && ((s) < DNS_PSEUDOSECTION_MAX))
|
||||||
#define VALID_PSEUDOSECTION(s) \
|
#define VALID_PSEUDOSECTION(s) \
|
||||||
(((s) >= DNS_PSEUDOSECTION_ANY) && ((s) < DNS_PSEUDOSECTION_MAX))
|
(((s) >= DNS_PSEUDOSECTION_ANY) && ((s) < DNS_PSEUDOSECTION_MAX))
|
||||||
|
|
||||||
@@ -2452,7 +2454,7 @@ dns_message_findname(dns_message_t *msg, dns_section_t section,
|
|||||||
* to be filled in, that we can in fact fill it in.
|
* to be filled in, that we can in fact fill it in.
|
||||||
*/
|
*/
|
||||||
REQUIRE(msg != NULL);
|
REQUIRE(msg != NULL);
|
||||||
REQUIRE(VALID_SECTION(section));
|
REQUIRE(VALID_NAMED_SECTION(section));
|
||||||
REQUIRE(target != NULL);
|
REQUIRE(target != NULL);
|
||||||
REQUIRE(name == NULL || *name == NULL);
|
REQUIRE(name == NULL || *name == NULL);
|
||||||
|
|
||||||
@@ -3302,7 +3304,7 @@ dns_message_sectiontotext(dns_message_t *msg, dns_section_t section,
|
|||||||
|
|
||||||
REQUIRE(DNS_MESSAGE_VALID(msg));
|
REQUIRE(DNS_MESSAGE_VALID(msg));
|
||||||
REQUIRE(target != NULL);
|
REQUIRE(target != NULL);
|
||||||
REQUIRE(VALID_SECTION(section));
|
REQUIRE(VALID_NAMED_SECTION(section));
|
||||||
|
|
||||||
saved_count = msg->indent.count;
|
saved_count = msg->indent.count;
|
||||||
|
|
||||||
@@ -3518,7 +3520,7 @@ dns_message_pseudosectiontoyaml(dns_message_t *msg, dns_pseudosection_t section,
|
|||||||
|
|
||||||
REQUIRE(DNS_MESSAGE_VALID(msg));
|
REQUIRE(DNS_MESSAGE_VALID(msg));
|
||||||
REQUIRE(target != NULL);
|
REQUIRE(target != NULL);
|
||||||
REQUIRE(VALID_PSEUDOSECTION(section));
|
REQUIRE(VALID_NAMED_PSEUDOSECTION(section));
|
||||||
|
|
||||||
saved_count = msg->indent.count;
|
saved_count = msg->indent.count;
|
||||||
|
|
||||||
@@ -3882,7 +3884,7 @@ dns_message_pseudosectiontotext(dns_message_t *msg, dns_pseudosection_t section,
|
|||||||
|
|
||||||
REQUIRE(DNS_MESSAGE_VALID(msg));
|
REQUIRE(DNS_MESSAGE_VALID(msg));
|
||||||
REQUIRE(target != NULL);
|
REQUIRE(target != NULL);
|
||||||
REQUIRE(VALID_PSEUDOSECTION(section));
|
REQUIRE(VALID_NAMED_PSEUDOSECTION(section));
|
||||||
|
|
||||||
if ((dns_master_styleflags(style) & DNS_STYLEFLAG_YAML) != 0) {
|
if ((dns_master_styleflags(style) & DNS_STYLEFLAG_YAML) != 0) {
|
||||||
return (dns_message_pseudosectiontoyaml(msg, section, style,
|
return (dns_message_pseudosectiontoyaml(msg, section, style,
|
||||||
|
Reference in New Issue
Block a user