mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-09-03 16:15:27 +00:00
[master] null terminate strings for coverity
This commit is contained in:
@@ -1162,6 +1162,8 @@ plus_option(char *option, isc_boolean_t is_batchfile,
|
|||||||
if (value != NULL) {
|
if (value != NULL) {
|
||||||
n = strlcpy(sitvalue, value,
|
n = strlcpy(sitvalue, value,
|
||||||
sizeof(sitvalue));
|
sizeof(sitvalue));
|
||||||
|
sitvalue[sizeof(sitvalue) - 1] = '\0';
|
||||||
|
|
||||||
if (n >= sizeof(sitvalue))
|
if (n >= sizeof(sitvalue))
|
||||||
fatal("SIT data too large");
|
fatal("SIT data too large");
|
||||||
lookup->sitvalue = sitvalue;
|
lookup->sitvalue = sitvalue;
|
||||||
@@ -1601,6 +1603,7 @@ dash_option(char *option, char *next, dig_lookup_t **lookup,
|
|||||||
ip6_int, ISC_FALSE) == ISC_R_SUCCESS) {
|
ip6_int, ISC_FALSE) == ISC_R_SUCCESS) {
|
||||||
strncpy((*lookup)->textname, textname,
|
strncpy((*lookup)->textname, textname,
|
||||||
sizeof((*lookup)->textname));
|
sizeof((*lookup)->textname));
|
||||||
|
(*lookup)->textname[sizeof((*lookup)->textname)-1] = 0;
|
||||||
debug("looking up %s", (*lookup)->textname);
|
debug("looking up %s", (*lookup)->textname);
|
||||||
(*lookup)->trace_root = ISC_TF((*lookup)->trace ||
|
(*lookup)->trace_root = ISC_TF((*lookup)->trace ||
|
||||||
(*lookup)->ns_search_only);
|
(*lookup)->ns_search_only);
|
||||||
|
@@ -133,8 +133,14 @@ add_name(struct dlz_example_data *state, struct record *list,
|
|||||||
return (ISC_R_NOSPACE);
|
return (ISC_R_NOSPACE);
|
||||||
|
|
||||||
strncpy(list[i].name, name, sizeof(list[i].name));
|
strncpy(list[i].name, name, sizeof(list[i].name));
|
||||||
|
list[i].name[sizeof(list[i].name) - 1] = '\0';
|
||||||
|
|
||||||
strncpy(list[i].type, type, sizeof(list[i].type));
|
strncpy(list[i].type, type, sizeof(list[i].type));
|
||||||
|
list[i].type[sizeof(list[i].type) - 1] = '\0';
|
||||||
|
|
||||||
strncpy(list[i].data, data, sizeof(list[i].data));
|
strncpy(list[i].data, data, sizeof(list[i].data));
|
||||||
|
list[i].data[sizeof(list[i].data) - 1] = '\0';
|
||||||
|
|
||||||
list[i].ttl = ttl;
|
list[i].ttl = ttl;
|
||||||
|
|
||||||
return (ISC_R_SUCCESS);
|
return (ISC_R_SUCCESS);
|
||||||
|
@@ -121,8 +121,14 @@ add_name(struct dlz_example_data *state, struct record *list,
|
|||||||
return (ISC_R_NOSPACE);
|
return (ISC_R_NOSPACE);
|
||||||
|
|
||||||
strncpy(list[i].name, name, sizeof(list[i].name));
|
strncpy(list[i].name, name, sizeof(list[i].name));
|
||||||
|
list[i].name[sizeof(list[i].name) - 1] = '\0';
|
||||||
|
|
||||||
strncpy(list[i].type, type, sizeof(list[i].type));
|
strncpy(list[i].type, type, sizeof(list[i].type));
|
||||||
|
list[i].type[sizeof(list[i].type) - 1] = '\0';
|
||||||
|
|
||||||
strncpy(list[i].data, data, sizeof(list[i].data));
|
strncpy(list[i].data, data, sizeof(list[i].data));
|
||||||
|
list[i].data[sizeof(list[i].data) - 1] = '\0';
|
||||||
|
|
||||||
list[i].ttl = ttl;
|
list[i].ttl = ttl;
|
||||||
|
|
||||||
return (ISC_R_SUCCESS);
|
return (ISC_R_SUCCESS);
|
||||||
|
@@ -331,15 +331,20 @@ insert_into_typenames(int type, const char *typename, const char *attr) {
|
|||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* XXXMUKS: This is redundant due to the INSIST above. */
|
||||||
if (strlen(typename) > sizeof(ttn->typename) - 1) {
|
if (strlen(typename) > sizeof(ttn->typename) - 1) {
|
||||||
fprintf(stderr, "Error: type name %s is too long\n",
|
fprintf(stderr, "Error: type name %s is too long\n",
|
||||||
typename);
|
typename);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
strncpy(ttn->typename, typename, sizeof(ttn->typename));
|
strncpy(ttn->typename, typename, sizeof(ttn->typename));
|
||||||
ttn->type = type;
|
ttn->typename[sizeof(ttn->typename) - 1] = '\0';
|
||||||
|
|
||||||
strncpy(ttn->macroname, ttn->typename, sizeof(ttn->macroname));
|
strncpy(ttn->macroname, ttn->typename, sizeof(ttn->macroname));
|
||||||
|
ttn->macroname[sizeof(ttn->macroname) - 1] = '\0';
|
||||||
|
|
||||||
|
ttn->type = type;
|
||||||
c = strlen(ttn->macroname);
|
c = strlen(ttn->macroname);
|
||||||
while (c > 0) {
|
while (c > 0) {
|
||||||
if (ttn->macroname[c - 1] == '-')
|
if (ttn->macroname[c - 1] == '-')
|
||||||
@@ -365,7 +370,10 @@ insert_into_typenames(int type, const char *typename, const char *attr) {
|
|||||||
attr, typename);
|
attr, typename);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
strncpy(ttn->attr, attr, sizeof(ttn->attr));
|
strncpy(ttn->attr, attr, sizeof(ttn->attr));
|
||||||
|
ttn->attr[sizeof(ttn->attr) - 1] = '\0';
|
||||||
|
|
||||||
ttn->sorted = 0;
|
ttn->sorted = 0;
|
||||||
if (maxtype < type)
|
if (maxtype < type)
|
||||||
maxtype = type;
|
maxtype = type;
|
||||||
@@ -394,11 +402,17 @@ add(int rdclass, const char *classname, int type, const char *typename,
|
|||||||
newtt->next = NULL;
|
newtt->next = NULL;
|
||||||
newtt->rdclass = rdclass;
|
newtt->rdclass = rdclass;
|
||||||
newtt->type = type;
|
newtt->type = type;
|
||||||
|
|
||||||
strncpy(newtt->classname, classname, sizeof(newtt->classname));
|
strncpy(newtt->classname, classname, sizeof(newtt->classname));
|
||||||
|
newtt->classname[sizeof(newtt->classname) - 1] = '\0';
|
||||||
|
|
||||||
strncpy(newtt->typename, typename, sizeof(newtt->typename));
|
strncpy(newtt->typename, typename, sizeof(newtt->typename));
|
||||||
|
newtt->typename[sizeof(newtt->typename) - 1] = '\0';
|
||||||
|
|
||||||
if (strncmp(dirname, "./", 2) == 0)
|
if (strncmp(dirname, "./", 2) == 0)
|
||||||
dirname += 2;
|
dirname += 2;
|
||||||
strncpy(newtt->dirname, dirname, sizeof(newtt->dirname));
|
strncpy(newtt->dirname, dirname, sizeof(newtt->dirname));
|
||||||
|
newtt->dirname[sizeof(newtt->dirname) - 1] = '\0';
|
||||||
|
|
||||||
tt = types;
|
tt = types;
|
||||||
oldtt = NULL;
|
oldtt = NULL;
|
||||||
|
@@ -224,11 +224,13 @@ maybe_numeric(unsigned int *valuep, isc_textregion_t *source,
|
|||||||
return (ISC_R_BADNUMBER);
|
return (ISC_R_BADNUMBER);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* We have a potential number. Try to parse it with
|
* We have a potential number. Try to parse it with
|
||||||
* isc_parse_uint32(). isc_parse_uint32() requires
|
* isc_parse_uint32(). isc_parse_uint32() requires
|
||||||
* null termination, so we must make a copy.
|
* null termination, so we must make a copy.
|
||||||
*/
|
*/
|
||||||
strncpy(buffer, source->base, NUMBERSIZE);
|
strncpy(buffer, source->base, sizeof(buffer));
|
||||||
|
buffer[sizeof(buffer) - 1] = '\0';
|
||||||
|
|
||||||
INSIST(buffer[source->length] == '\0');
|
INSIST(buffer[source->length] == '\0');
|
||||||
|
|
||||||
result = isc_parse_uint32(&n, buffer, 10);
|
result = isc_parse_uint32(&n, buffer, 10);
|
||||||
|
@@ -706,12 +706,16 @@ get_local(const char *name, int socktype, struct addrinfo **res) {
|
|||||||
if (socktype == 0)
|
if (socktype == 0)
|
||||||
return (EAI_SOCKTYPE);
|
return (EAI_SOCKTYPE);
|
||||||
|
|
||||||
|
if (strlen(name) >= sizeof(slocal->sun_path))
|
||||||
|
return (EAI_OVERFLOW);
|
||||||
|
|
||||||
ai = ai_alloc(AF_LOCAL, sizeof(*slocal));
|
ai = ai_alloc(AF_LOCAL, sizeof(*slocal));
|
||||||
if (ai == NULL)
|
if (ai == NULL)
|
||||||
return (EAI_MEMORY);
|
return (EAI_MEMORY);
|
||||||
|
|
||||||
slocal = SLOCAL(ai->ai_addr);
|
slocal = SLOCAL(ai->ai_addr);
|
||||||
strncpy(slocal->sun_path, name, sizeof(slocal->sun_path));
|
strncpy(slocal->sun_path, name, sizeof(slocal->sun_path));
|
||||||
|
slocal->sun_path[sizeof(slocal->sun_path) - 1] = '\0';
|
||||||
|
|
||||||
ai->ai_socktype = socktype;
|
ai->ai_socktype = socktype;
|
||||||
/*
|
/*
|
||||||
|
Reference in New Issue
Block a user