mirror of
https://github.com/isc-projects/bind9.git
synced 2026-06-11 09:20:01 -04:00
Add DBC REQUIRE to check that 'text' is non NULL
for all control channel commands. This should silence gcc-10-analyzer reporting NULL pointer dereference of 'text'.
This commit is contained in:
parent
7301ab8b47
commit
ac0fc3c2de
1 changed files with 54 additions and 0 deletions
|
|
@ -10866,6 +10866,8 @@ named_server_retransfercommand(named_server_t *server, isc_lex_t *lex,
|
|||
dns_zone_t *raw = NULL;
|
||||
dns_zonetype_t type;
|
||||
|
||||
REQUIRE(text != NULL);
|
||||
|
||||
result = zone_from_args(server, lex, NULL, &zone, NULL, text, true);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
return (result);
|
||||
|
|
@ -10913,6 +10915,8 @@ named_server_reloadcommand(named_server_t *server, isc_lex_t *lex,
|
|||
dns_zonetype_t type;
|
||||
const char *msg = NULL;
|
||||
|
||||
REQUIRE(text != NULL);
|
||||
|
||||
result = zone_from_args(server, lex, NULL, &zone, NULL, text, true);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
return (result);
|
||||
|
|
@ -10993,6 +10997,8 @@ named_server_notifycommand(named_server_t *server, isc_lex_t *lex,
|
|||
dns_zone_t *zone = NULL;
|
||||
const char msg[] = "zone notify queued";
|
||||
|
||||
REQUIRE(text != NULL);
|
||||
|
||||
result = zone_from_args(server, lex, NULL, &zone, NULL, text, true);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
return (result);
|
||||
|
|
@ -11021,6 +11027,8 @@ named_server_refreshcommand(named_server_t *server, isc_lex_t *lex,
|
|||
const char msg2[] = "not a slave, mirror, or stub zone";
|
||||
dns_zonetype_t type;
|
||||
|
||||
REQUIRE(text != NULL);
|
||||
|
||||
result = zone_from_args(server, lex, NULL, &zone, NULL, text, true);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
return (result);
|
||||
|
|
@ -11630,6 +11638,8 @@ named_server_dumpdb(named_server_t *server, isc_lex_t *lex,
|
|||
const char *sep;
|
||||
bool found;
|
||||
|
||||
REQUIRE(text != NULL);
|
||||
|
||||
/* Skip the command name. */
|
||||
ptr = next_token(lex, NULL);
|
||||
if (ptr == NULL) {
|
||||
|
|
@ -11753,6 +11763,8 @@ named_server_dumpsecroots(named_server_t *server, isc_lex_t *lex,
|
|||
unsigned int used = isc_buffer_usedlength(*text);
|
||||
bool first = true;
|
||||
|
||||
REQUIRE(text != NULL);
|
||||
|
||||
/* Skip the command name. */
|
||||
ptr = next_token(lex, text);
|
||||
if (ptr == NULL) {
|
||||
|
|
@ -11941,6 +11953,8 @@ named_server_validation(named_server_t *server, isc_lex_t *lex,
|
|||
isc_result_t result;
|
||||
bool enable = true, set = true, first = true;
|
||||
|
||||
REQUIRE(text != NULL);
|
||||
|
||||
/* Skip the command name. */
|
||||
ptr = next_token(lex, text);
|
||||
if (ptr == NULL) {
|
||||
|
|
@ -12261,6 +12275,8 @@ named_server_status(named_server_t *server, isc_buffer_t **text) {
|
|||
char line[1024], hostname[256];
|
||||
named_reload_t reload_status;
|
||||
|
||||
REQUIRE(text != NULL);
|
||||
|
||||
if (named_g_server->version_set) {
|
||||
ob = " (";
|
||||
cb = ")";
|
||||
|
|
@ -12387,6 +12403,8 @@ named_server_testgen(isc_lex_t *lex, isc_buffer_t **text) {
|
|||
unsigned long i;
|
||||
const unsigned char chars[] = "abcdefghijklmnopqrstuvwxyz0123456789";
|
||||
|
||||
REQUIRE(text != NULL);
|
||||
|
||||
/* Skip the command name. */
|
||||
ptr = next_token(lex, text);
|
||||
if (ptr == NULL) {
|
||||
|
|
@ -12482,6 +12500,8 @@ named_server_tsigdelete(named_server_t *server, isc_lex_t *lex,
|
|||
char target[DNS_NAME_FORMATSIZE];
|
||||
char fbuf[16];
|
||||
|
||||
REQUIRE(text != NULL);
|
||||
|
||||
(void)next_token(lex, text); /* skip command name */
|
||||
|
||||
ptr = next_token(lex, text);
|
||||
|
|
@ -12606,6 +12626,8 @@ named_server_tsiglist(named_server_t *server, isc_buffer_t **text) {
|
|||
dns_view_t *view;
|
||||
unsigned int foundkeys = 0;
|
||||
|
||||
REQUIRE(text != NULL);
|
||||
|
||||
for (view = ISC_LIST_HEAD(server->viewlist); view != NULL;
|
||||
view = ISC_LIST_NEXT(view, link))
|
||||
{
|
||||
|
|
@ -12650,6 +12672,8 @@ named_server_rekey(named_server_t *server, isc_lex_t *lex,
|
|||
bool fullsign = false;
|
||||
char *ptr;
|
||||
|
||||
REQUIRE(text != NULL);
|
||||
|
||||
ptr = next_token(lex, text);
|
||||
if (ptr == NULL) {
|
||||
return (ISC_R_UNEXPECTEDEND);
|
||||
|
|
@ -12659,6 +12683,8 @@ named_server_rekey(named_server_t *server, isc_lex_t *lex,
|
|||
fullsign = true;
|
||||
}
|
||||
|
||||
REQUIRE(text != NULL);
|
||||
|
||||
result = zone_from_args(server, lex, NULL, &zone, NULL, text, false);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
return (result);
|
||||
|
|
@ -12731,6 +12757,8 @@ named_server_sync(named_server_t *server, isc_lex_t *lex, isc_buffer_t **text) {
|
|||
const char *vname, *sep, *arg;
|
||||
bool cleanup = false;
|
||||
|
||||
REQUIRE(text != NULL);
|
||||
|
||||
(void)next_token(lex, text);
|
||||
|
||||
arg = next_token(lex, text);
|
||||
|
|
@ -12740,6 +12768,8 @@ named_server_sync(named_server_t *server, isc_lex_t *lex, isc_buffer_t **text) {
|
|||
arg = next_token(lex, text);
|
||||
}
|
||||
|
||||
REQUIRE(text != NULL);
|
||||
|
||||
result = zone_from_args(server, lex, arg, &zone, NULL, text, false);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
return (result);
|
||||
|
|
@ -12810,6 +12840,8 @@ named_server_freeze(named_server_t *server, bool freeze, isc_lex_t *lex,
|
|||
bool frozen;
|
||||
const char *msg = NULL;
|
||||
|
||||
REQUIRE(text != NULL);
|
||||
|
||||
result = zone_from_args(server, lex, NULL, &mayberaw, NULL, text, true);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
return (result);
|
||||
|
|
@ -12926,6 +12958,8 @@ named_server_freeze(named_server_t *server, bool freeze, isc_lex_t *lex,
|
|||
*/
|
||||
isc_result_t
|
||||
named_smf_add_message(isc_buffer_t **text) {
|
||||
REQUIRE(text != NULL);
|
||||
|
||||
return (putstr(text, "use svcadm(1M) to manage named"));
|
||||
}
|
||||
#endif /* HAVE_LIBSCF */
|
||||
|
|
@ -14199,6 +14233,8 @@ named_server_changezone(named_server_t *server, char *command,
|
|||
dns_fixedname_t fname;
|
||||
dns_name_t *dnsname;
|
||||
|
||||
REQUIRE(text != NULL);
|
||||
|
||||
if (strncasecmp(command, "add", 3) == 0) {
|
||||
addzone = true;
|
||||
} else {
|
||||
|
|
@ -14474,6 +14510,8 @@ named_server_delzone(named_server_t *server, isc_lex_t *lex,
|
|||
isc_event_t *dzevent = NULL;
|
||||
isc_task_t *task = NULL;
|
||||
|
||||
REQUIRE(text != NULL);
|
||||
|
||||
/* Skip the command name. */
|
||||
ptr = next_token(lex, text);
|
||||
if (ptr == NULL) {
|
||||
|
|
@ -14688,6 +14726,8 @@ named_server_showzone(named_server_t *server, isc_lex_t *lex,
|
|||
bool added, redirect;
|
||||
ns_dzarg_t dzarg;
|
||||
|
||||
REQUIRE(text != NULL);
|
||||
|
||||
/* Parse parameters */
|
||||
CHECK(zone_from_args(server, lex, NULL, &zone, zonename, text, true));
|
||||
if (zone == NULL) {
|
||||
|
|
@ -14823,6 +14863,8 @@ named_server_signing(named_server_t *server, isc_lex_t *lex,
|
|||
const char *ptr;
|
||||
size_t n;
|
||||
|
||||
REQUIRE(text != NULL);
|
||||
|
||||
dns_rdataset_init(&privset);
|
||||
|
||||
/* Skip the command name. */
|
||||
|
|
@ -15053,6 +15095,8 @@ named_server_dnssec(named_server_t *server, isc_lex_t *lex,
|
|||
dns_db_t *db = NULL;
|
||||
dns_dbversion_t *version = NULL;
|
||||
|
||||
REQUIRE(text != NULL);
|
||||
|
||||
/* Skip the command name. */
|
||||
ptr = next_token(lex, text);
|
||||
if (ptr == NULL) {
|
||||
|
|
@ -15393,6 +15437,8 @@ named_server_zonestatus(named_server_t *server, isc_lex_t *lex,
|
|||
char **incfiles = NULL;
|
||||
int nfiles = 0;
|
||||
|
||||
REQUIRE(text != NULL);
|
||||
|
||||
isc_time_settoepoch(&loadtime);
|
||||
isc_time_settoepoch(&refreshtime);
|
||||
isc_time_settoepoch(&expiretime);
|
||||
|
|
@ -15659,6 +15705,8 @@ named_server_nta(named_server_t *server, isc_lex_t *lex, bool readonly,
|
|||
dns_rdataclass_t rdclass = dns_rdataclass_in;
|
||||
bool first = true;
|
||||
|
||||
REQUIRE(text != NULL);
|
||||
|
||||
UNUSED(force);
|
||||
|
||||
fname = dns_fixedname_initname(&fn);
|
||||
|
|
@ -16212,6 +16260,8 @@ named_server_mkeys(named_server_t *server, isc_lex_t *lex,
|
|||
bool found = false;
|
||||
bool first = true;
|
||||
|
||||
REQUIRE(text != NULL);
|
||||
|
||||
/* Skip rndc command name */
|
||||
cmd = next_token(lex, text);
|
||||
if (cmd == NULL) {
|
||||
|
|
@ -16331,6 +16381,8 @@ named_server_dnstap(named_server_t *server, isc_lex_t *lex,
|
|||
bool reopen = false;
|
||||
int backups = 0;
|
||||
|
||||
REQUIRE(text != NULL);
|
||||
|
||||
if (server->dtenv == NULL) {
|
||||
return (ISC_R_NOTFOUND);
|
||||
}
|
||||
|
|
@ -16485,6 +16537,8 @@ named_server_servestale(named_server_t *server, isc_lex_t *lex,
|
|||
isc_result_t result = ISC_R_SUCCESS;
|
||||
bool exclusive = false;
|
||||
|
||||
REQUIRE(text != NULL);
|
||||
|
||||
/* Skip the command name. */
|
||||
ptr = next_token(lex, text);
|
||||
if (ptr == NULL) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue