+4748. [cleanup] Sprintf to snprintf coversions. [RT #46132]
+
4747. [func] Synthesis of responses from DNSSEC-verified records.
Stage 3 - synthesize NODATA responses. [RT #40138]
if (filename == NULL)
fatal("out of memory");
if (dsdir != NULL)
- sprintf(filename, "%s/", dsdir);
+ snprintf(filename, filenamelen, "%s/", dsdir);
else
filename[0] = 0;
strlcat(filename, prefix, filenamelen);
origin = file;
if (output == NULL) {
+ size_t size;
free_output = ISC_TRUE;
- output = isc_mem_allocate(mctx,
- strlen(file) + strlen(".signed") + 1);
+ size = strlen(file) + strlen(".signed") + 1;
+ output = isc_mem_allocate(mctx, size);
if (output == NULL)
fatal("out of memory");
- sprintf(output, "%s.signed", file);
+ snprintf(output, size, "%s.signed", file);
}
if (inputformatstr != NULL) {
unsigned int prefixlen, const char *server,
const char *contact)
{
- char *cp;
- char reverse[48+sizeof("ip6.arpa.")];
+ char reverse[48+sizeof("ip6.arpa.")] = { 0 };
+ char buf[sizeof("x.x.")];
const char *dns64_dbtype[4] = { "_dns64", "dns64", ".", "." };
const char *sep = ": view ";
const char *viewname = view->name;
/*
* Construct the reverse name of the zone.
*/
- cp = reverse;
s6 = na->type.in6.s6_addr;
while (prefixlen > 0) {
prefixlen -= 8;
- sprintf(cp, "%x.%x.", s6[prefixlen/8] & 0xf,
- (s6[prefixlen/8] >> 4) & 0xf);
- cp += 4;
+ snprintf(buf, sizeof(buf), "%x.%x.", s6[prefixlen/8] & 0xf,
+ (s6[prefixlen/8] >> 4) & 0xf);
+ strlcat(reverse, buf, sizeof(reverse));
}
-
strlcat(reverse, "ip6.arpa.", sizeof(reverse));
/*
case isc_statsformat_json:
#ifdef HAVE_JSON
zoneobj = (json_object *) dumparg->arg;
- sprintf(buf, "%s%s%s", stale ? "#" : "",
- nxrrset ? "!" : "", typestr);
+ snprintf(buf, sizeof(buf), "%s%s%s",
+ stale ? "#" : "", nxrrset ? "!" : "", typestr);
obj = json_object_new_int64(val);
if (obj == NULL)
return;
len = strlen(filename);
if (len + 4 + 1 > sizeof(newfilename))
fatal("filename too long");
- sprintf(newfilename, "%s.new", filename);
+ snprintf(newfilename, sizeof(newfilename), "%s.new", filename);
result = dns_db_dump(db, NULL, newfilename);
check_result(result, "dns_db_dump");
dns_db_detach(&db);
RUNTIME_CHECK(isc_rwlock_init(&lock, 5, 10) == ISC_R_SUCCESS);
for (i = 0; i < nworkers; i++) {
- sprintf(name, "%02u", i);
+ snprintf(name, sizeof(name), "%02u", i);
dupname = strdup(name);
RUNTIME_CHECK(dupname != NULL);
if (i != 0 && i % 3 == 0)
*/
if (strcmp(event->ev_arg, "so2") != 0) {
region = dev->region;
- sprintf(buf, "\r\nReceived: %.*s\r\n\r\n",
- (int)dev->n, (char *)region.base);
+ snprintf(buf, sizeof(buf), "\r\nReceived: %.*s\r\n\r\n",
+ (int)dev->n, (char *)region.base);
region.base = isc_mem_get(mctx, strlen(buf) + 1);
if (region.base != NULL) {
region.length = strlen(buf) + 1;
len = 1 + 3 + 1 + 5 + strlen(suffix) + 1;
if (isc_buffer_availablelength(out) < len)
return (ISC_R_NOSPACE);
- sprintf((char *) isc_buffer_used(out), "+%03d+%05d%s", alg, id,
- suffix);
+ snprintf((char *) isc_buffer_used(out),
+ (int)isc_buffer_availablelength(out),
+ "+%03d+%05d%s", alg, id, suffix);
isc_buffer_add(out, len);
return (ISC_R_SUCCESS);
*/
const char *old = getenv("KRB5_KTNAME");
if (old == NULL || strcmp(old, gssapi_keytab) != 0) {
- char *kt = malloc(strlen(gssapi_keytab) + 13);
+ size_t size;
+ char *kt;
+
+ size = strlen(gssapi_keytab) + 13;
+ kt = malloc(size);
if (kt == NULL)
return (ISC_R_NOMEMORY);
- sprintf(kt, "KRB5_KTNAME=%s", gssapi_keytab);
+ snprintf(kt, size, "KRB5_KTNAME=%s", gssapi_keytab);
if (putenv(kt) != 0)
return (ISC_R_NOMEMORY);
}
isc_buffer_putstr(buf, "Signing with ");
dns_secalg_format(alg, algbuf, sizeof(algbuf));
- sprintf(keybuf, "key %d/%s", keyid, algbuf);
+ snprintf(keybuf, sizeof(keybuf), "key %d/%s", keyid, algbuf);
isc_buffer_putstr(buf, keybuf);
} else
return (ISC_R_NOTFOUND);
RETERR(dns_rdatatype_totext(t, target));
} else {
char buf[sizeof("TYPE65535")];
- sprintf(buf, "TYPE%u", t);
+ snprintf(buf, sizeof(buf), "TYPE%u", t);
RETERR(str_totext(buf, target));
}
}
*/
n = uint16_fromregion(&sr);
isc_region_consume(&sr, 2);
- sprintf(buf, "%u ", n);
+ snprintf(buf, sizeof(buf), "%u ", n);
RETERR(str_totext(buf, target));
/*
*/
n = uint16_fromregion(&sr);
isc_region_consume(&sr, 2);
- sprintf(buf, "%u", n);
+ snprintf(buf, sizeof(buf), "%u", n);
RETERR(str_totext(buf, target));
/*
*/
n = uint16_fromregion(&sr);
isc_region_consume(&sr, 2);
- sprintf(buf, "%u ", n);
+ snprintf(buf, sizeof(buf), "%u ", n);
RETERR(str_totext(buf, target));
/*
*/
n = uint16_fromregion(&sr);
isc_region_consume(&sr, 2);
- sprintf(buf, " %u ", n);
+ snprintf(buf, sizeof(buf), " %u ", n);
RETERR(str_totext(buf, target));
/*
sub = name_prefix(&name, tctx->origin, &prefix);
RETERR(dns_name_totext(&prefix, sub, target));
- sprintf(buf, "%o", addr); /* note octal */
+ snprintf(buf, sizeof(buf), "%o", addr); /* note octal */
RETERR(str_totext(" ", target));
return (str_totext(buf, target));
}
dns_rdata_toregion(rdata, ®ion);
num = uint16_fromregion(®ion);
isc_region_consume(®ion, 2);
- sprintf(buf, "%u ", num);
+ snprintf(buf, sizeof(buf), "%u ", num);
RETERR(str_totext(buf, target));
dns_name_fromregion(&name, ®ion);
sub = name_prefix(&name, tctx->origin, &prefix);
*/
n = uint16_fromregion(&sr);
isc_region_consume(&sr, 2);
- sprintf(buf, "%u ", n);
+ snprintf(buf, sizeof(buf), "%u ", n);
RETERR(str_totext(buf, target));
/*
num = uint32_fromregion(&sr);
isc_region_consume(&sr, 4);
- sprintf(buf, "%lu", num);
+ snprintf(buf, sizeof(buf), "%lu", num);
RETERR(str_totext(buf, target));
RETERR(str_totext(" ", target));
num = uint16_fromregion(&sr);
isc_region_consume(&sr, 2);
- sprintf(buf, "%lu", num);
+ snprintf(buf, sizeof(buf), "%lu", num);
RETERR(str_totext(buf, target));
return (typemap_totext(&sr, NULL, target));
*/
n = uint16_fromregion(&sr);
isc_region_consume(&sr, 2);
- sprintf(buf, "%u ", n);
+ snprintf(buf, sizeof(buf), "%u ", n);
RETERR(str_totext(buf, target));
/*
*/
n = uint8_fromregion(&sr);
isc_region_consume(&sr, 1);
- sprintf(buf, "%u ", n);
+ snprintf(buf, sizeof(buf), "%u ", n);
RETERR(str_totext(buf, target));
/*
*/
n = uint8_fromregion(&sr);
isc_region_consume(&sr, 1);
- sprintf(buf, "%u", n);
+ snprintf(buf, sizeof(buf), "%u", n);
RETERR(str_totext(buf, target));
/*
/*
* Algorithm
*/
- sprintf(buf, "%u ", algorithm);
+ snprintf(buf, sizeof(buf), "%u ", algorithm);
RETERR(str_totext(buf, target));
/*
dns_rdata_toregion(rdata, ®ion);
num = uint8_fromregion(®ion);
isc_region_consume(®ion, 1);
- sprintf(buf, "%u ", num);
+ snprintf(buf, sizeof(buf), "%u ", num);
RETERR(str_totext(buf, target));
/*
*/
gateway = uint8_fromregion(®ion);
isc_region_consume(®ion, 1);
- sprintf(buf, "%u ", gateway);
+ snprintf(buf, sizeof(buf), "%u ", gateway);
RETERR(str_totext(buf, target));
/*
*/
num = uint8_fromregion(®ion);
isc_region_consume(®ion, 1);
- sprintf(buf, "%u ", num);
+ snprintf(buf, sizeof(buf), "%u ", num);
RETERR(str_totext(buf, target));
/*
/* flags */
flags = uint16_fromregion(&sr);
isc_region_consume(&sr, 2);
- sprintf(buf, "%u", flags);
+ snprintf(buf, sizeof(buf), "%u", flags);
RETERR(str_totext(buf, target));
RETERR(str_totext(" ", target));
if ((flags & DNS_KEYFLAG_KSK) != 0) {
/* protocol */
- sprintf(buf, "%u", sr.base[0]);
+ snprintf(buf, sizeof(buf), "%u", sr.base[0]);
isc_region_consume(&sr, 1);
RETERR(str_totext(buf, target));
RETERR(str_totext(" ", target));
/* algorithm */
algorithm = sr.base[0];
- sprintf(buf, "%u", algorithm);
+ snprintf(buf, sizeof(buf), "%u", algorithm);
isc_region_consume(&sr, 1);
RETERR(str_totext(buf, target));
RETERR(str_totext(algbuf, target));
RETERR(str_totext(" ; key id = ", target));
dns_rdata_toregion(rdata, &tmpr);
- sprintf(buf, "%u", dst_region_computeid(&tmpr, algorithm));
+ snprintf(buf, sizeof(buf), "%u",
+ dst_region_computeid(&tmpr, algorithm));
RETERR(str_totext(buf, target));
}
return (ISC_R_SUCCESS);
/* flags */
flags = uint16_fromregion(&sr);
isc_region_consume(&sr, 2);
- sprintf(buf, "%u", flags);
+ snprintf(buf, sizeof(buf), "%u", flags);
RETERR(str_totext(buf, target));
RETERR(str_totext(" ", target));
if ((flags & DNS_KEYFLAG_KSK) != 0) {
keyinfo = "ZSK";
/* protocol */
- sprintf(buf, "%u", sr.base[0]);
+ snprintf(buf, sizeof(buf), "%u", sr.base[0]);
isc_region_consume(&sr, 1);
RETERR(str_totext(buf, target));
RETERR(str_totext(" ", target));
/* algorithm */
algorithm = sr.base[0];
- sprintf(buf, "%u", algorithm);
+ snprintf(buf, sizeof(buf), "%u", algorithm);
isc_region_consume(&sr, 1);
RETERR(str_totext(buf, target));
dns_rdata_toregion(rdata, &tmpr);
/* Skip over refresh, addhd, and removehd */
isc_region_consume(&tmpr, 12);
- sprintf(buf, "%u", dst_region_computeid(&tmpr, algorithm));
+ snprintf(buf, sizeof(buf), "%u",
+ dst_region_computeid(&tmpr, algorithm));
RETERR(str_totext(buf, target));
if ((tctx->flags & DNS_STYLEFLAG_MULTILINE) != 0) {
dns_rdata_toregion(rdata, ®ion);
num = uint16_fromregion(®ion);
isc_region_consume(®ion, 2);
- sprintf(buf, "%u", num);
+ snprintf(buf, sizeof(buf), "%u", num);
RETERR(str_totext(buf, target));
RETERR(str_totext(" ", target));
dns_rdata_toregion(rdata, ®ion);
num = uint16_fromregion(®ion);
isc_region_consume(®ion, 2);
- sprintf(buf, "%u", num);
+ snprintf(buf, sizeof(buf), "%u", num);
RETERR(str_totext(buf, target));
RETERR(str_totext(" ", target));
- sprintf(buf, "%x:%x:%x:%x",
- region.base[0]<<8 | region.base[1],
- region.base[2]<<8 | region.base[3],
- region.base[4]<<8 | region.base[5],
- region.base[6]<<8 | region.base[7]);
+ snprintf(buf, sizeof(buf), "%x:%x:%x:%x",
+ region.base[0]<<8 | region.base[1],
+ region.base[2]<<8 | region.base[3],
+ region.base[4]<<8 | region.base[5],
+ region.base[6]<<8 | region.base[7]);
return (str_totext(buf, target));
}
size = sr.base[1];
INSIST((size&0x0f) < 10 && (size>>4) < 10);
- if ((size&0x0f)> 1)
- sprintf(sbuf, "%lum", (size>>4) * poweroften[(size&0x0f)-2]);
- else
- sprintf(sbuf, "0.%02lum", (size>>4) * poweroften[(size&0x0f)]);
+ if ((size&0x0f)> 1) {
+ snprintf(sbuf, sizeof(sbuf),
+ "%lum", (size>>4) * poweroften[(size&0x0f)-2]);
+ } else {
+ snprintf(sbuf, sizeof(sbuf),
+ "0.%02lum", (size>>4) * poweroften[(size&0x0f)]);
+ }
hp = sr.base[2];
INSIST((hp&0x0f) < 10 && (hp>>4) < 10);
- if ((hp&0x0f)> 1)
- sprintf(hbuf, "%lum", (hp>>4) * poweroften[(hp&0x0f)-2]);
- else
- sprintf(hbuf, "0.%02lum", (hp>>4) * poweroften[(hp&0x0f)]);
+ if ((hp&0x0f)> 1) {
+ snprintf(hbuf, sizeof(hbuf),
+ "%lum", (hp>>4) * poweroften[(hp&0x0f)-2]);
+ } else {
+ snprintf(hbuf, sizeof(hbuf),
+ "0.%02lum", (hp>>4) * poweroften[(hp&0x0f)]);
+ }
vp = sr.base[3];
INSIST((vp&0x0f) < 10 && (vp>>4) < 10);
- if ((vp&0x0f)> 1)
- sprintf(vbuf, "%lum", (vp>>4) * poweroften[(vp&0x0f)-2]);
- else
- sprintf(vbuf, "0.%02lum", (vp>>4) * poweroften[(vp&0x0f)]);
+ if ((vp&0x0f)> 1) {
+ snprintf(vbuf, sizeof(vbuf),
+ "%lum", (vp>>4) * poweroften[(vp&0x0f)-2]);
+ } else {
+ snprintf(vbuf, sizeof(vbuf),
+ "0.%02lum", (vp>>4) * poweroften[(vp&0x0f)]);
+ }
isc_region_consume(&sr, 4);
latitude = uint32_fromregion(&sr);
altitude -= 10000000;
}
- sprintf(buf, "%d %d %d.%03d %s %d %d %d.%03d %s %s%ld.%02ldm %s %s %s",
- d1, m1, s1, fs1, north ? "N" : "S",
- d2, m2, s2, fs2, east ? "E" : "W",
- below ? "-" : "", altitude/100, altitude % 100,
- sbuf, hbuf, vbuf);
+ snprintf(buf, sizeof(buf),
+ "%d %d %d.%03d %s %d %d %d.%03d %s %s%ld.%02ldm %s %s %s",
+ d1, m1, s1, fs1, north ? "N" : "S",
+ d2, m2, s2, fs2, east ? "E" : "W",
+ below ? "-" : "", altitude/100, altitude % 100,
+ sbuf, hbuf, vbuf);
return (str_totext(buf, target));
}
dns_rdata_toregion(rdata, ®ion);
num = uint16_fromregion(®ion);
isc_region_consume(®ion, 2);
- sprintf(buf, "%u", num);
+ snprintf(buf, sizeof(buf), "%u", num);
RETERR(str_totext(buf, target));
RETERR(str_totext(" ", target));
dns_rdata_toregion(rdata, ®ion);
num = uint16_fromregion(®ion);
isc_region_consume(®ion, 2);
- sprintf(buf, "%u", num);
+ snprintf(buf, sizeof(buf), "%u", num);
RETERR(str_totext(buf, target));
RETERR(str_totext(" ", target));
*/
num = uint16_fromregion(®ion);
isc_region_consume(®ion, 2);
- sprintf(buf, "%u", num);
+ snprintf(buf, sizeof(buf), "%u", num);
RETERR(str_totext(buf, target));
RETERR(str_totext(" ", target));
*/
num = uint16_fromregion(®ion);
isc_region_consume(®ion, 2);
- sprintf(buf, "%u", num);
+ snprintf(buf, sizeof(buf), "%u", num);
RETERR(str_totext(buf, target));
RETERR(str_totext(" ", target));
dns_rdata_toregion(rdata, ®ion);
num = uint16_fromregion(®ion);
isc_region_consume(®ion, 2);
- sprintf(buf, "%u", num);
+ snprintf(buf, sizeof(buf), "%u", num);
RETERR(str_totext(buf, target));
RETERR(str_totext(" ", target));
- sprintf(buf, "%x:%x:%x:%x",
- region.base[0]<<8 | region.base[1],
- region.base[2]<<8 | region.base[3],
- region.base[4]<<8 | region.base[5],
- region.base[6]<<8 | region.base[7]);
+ snprintf(buf, sizeof(buf), "%x:%x:%x:%x",
+ region.base[0]<<8 | region.base[1],
+ region.base[2]<<8 | region.base[3],
+ region.base[4]<<8 | region.base[5],
+ region.base[6]<<8 | region.base[7]);
return (str_totext(buf, target));
}
/* Hash */
hash = uint8_fromregion(&sr);
isc_region_consume(&sr, 1);
- sprintf(buf, "%u ", hash);
+ snprintf(buf, sizeof(buf), "%u ", hash);
RETERR(str_totext(buf, target));
/* Flags */
flags = uint8_fromregion(&sr);
isc_region_consume(&sr, 1);
- sprintf(buf, "%u ", flags);
+ snprintf(buf, sizeof(buf), "%u ", flags);
RETERR(str_totext(buf, target));
/* Iterations */
iterations = uint16_fromregion(&sr);
isc_region_consume(&sr, 2);
- sprintf(buf, "%u ", iterations);
+ snprintf(buf, sizeof(buf), "%u ", iterations);
RETERR(str_totext(buf, target));
/* Salt */
iterations = uint16_fromregion(&sr);
isc_region_consume(&sr, 2);
- sprintf(buf, "%u ", hash);
+ snprintf(buf, sizeof(buf), "%u ", hash);
RETERR(str_totext(buf, target));
- sprintf(buf, "%u ", flags);
+ snprintf(buf, sizeof(buf), "%u ", flags);
RETERR(str_totext(buf, target));
- sprintf(buf, "%u ", iterations);
+ snprintf(buf, sizeof(buf), "%u ", iterations);
RETERR(str_totext(buf, target));
j = uint8_fromregion(&sr);
target));
} else {
char buf[sizeof("65535")];
- sprintf(buf, "%u", t);
+ snprintf(buf, sizeof(buf),
+ "%u", t);
RETERR(str_totext(buf,
target));
}
isc_region_consume(&r, 2);
length = uint16_fromregion(&r);
isc_region_consume(&r, 2);
- sprintf(buf, "%u %u", option, length);
+ snprintf(buf, sizeof(buf), "%u %u", option, length);
RETERR(str_totext(buf, target));
INSIST(r.length >= length);
if (length > 0) {
static inline isc_result_t
totext_rrsig(ARGS_TOTEXT) {
isc_region_t sr;
- char buf[sizeof("4294967295")];
+ char buf[sizeof("4294967295")]; /* Also TYPE65000. */
dns_rdatatype_t covered;
unsigned long ttl;
unsigned long when;
if (dns_rdatatype_isknown(covered) && covered != 0) {
RETERR(dns_rdatatype_totext(covered, target));
} else {
- sprintf(buf, "TYPE%u", covered);
+ snprintf(buf, sizeof(buf), "TYPE%u", covered);
RETERR(str_totext(buf, target));
}
RETERR(str_totext(" ", target));
/*
* Algorithm.
*/
- sprintf(buf, "%u", sr.base[0]);
+ snprintf(buf, sizeof(buf), "%u", sr.base[0]);
isc_region_consume(&sr, 1);
RETERR(str_totext(buf, target));
RETERR(str_totext(" ", target));
/*
* Labels.
*/
- sprintf(buf, "%u", sr.base[0]);
+ snprintf(buf, sizeof(buf), "%u", sr.base[0]);
isc_region_consume(&sr, 1);
RETERR(str_totext(buf, target));
RETERR(str_totext(" ", target));
*/
ttl = uint32_fromregion(&sr);
isc_region_consume(&sr, 4);
- sprintf(buf, "%lu", ttl);
+ snprintf(buf, sizeof(buf), "%lu", ttl);
RETERR(str_totext(buf, target));
if ((tctx->flags & DNS_STYLEFLAG_MULTILINE) != 0)
*/
foot = uint16_fromregion(&sr);
isc_region_consume(&sr, 2);
- sprintf(buf, "%lu", foot);
+ snprintf(buf, sizeof(buf), "%lu", foot);
RETERR(str_totext(buf, target));
RETERR(str_totext(" ", target));
dns_rdata_toregion(rdata, ®ion);
num = uint16_fromregion(®ion);
isc_region_consume(®ion, 2);
- sprintf(buf, "%u", num);
+ snprintf(buf, sizeof(buf), "%u", num);
RETERR(str_totext(buf, target));
RETERR(str_totext(" ", target));
dns_name_fromregion(&name, ®ion);
if (dns_rdatatype_isknown(covered) && covered != 0) {
RETERR(dns_rdatatype_totext(covered, target));
} else {
- sprintf(buf, "%u", covered);
+ snprintf(buf, sizeof(buf), "%u", covered);
RETERR(str_totext(buf, target));
}
RETERR(str_totext(" ", target));
/*
* Algorithm.
*/
- sprintf(buf, "%u", sr.base[0]);
+ snprintf(buf, sizeof(buf), "%u", sr.base[0]);
isc_region_consume(&sr, 1);
RETERR(str_totext(buf, target));
RETERR(str_totext(" ", target));
/*
* Labels.
*/
- sprintf(buf, "%u", sr.base[0]);
+ snprintf(buf, sizeof(buf), "%u", sr.base[0]);
isc_region_consume(&sr, 1);
RETERR(str_totext(buf, target));
RETERR(str_totext(" ", target));
*/
ttl = uint32_fromregion(&sr);
isc_region_consume(&sr, 4);
- sprintf(buf, "%lu", ttl);
+ snprintf(buf, sizeof(buf), "%lu", ttl);
RETERR(str_totext(buf, target));
RETERR(str_totext(" ", target));
*/
foot = uint16_fromregion(&sr);
isc_region_consume(&sr, 2);
- sprintf(buf, "%lu", foot);
+ snprintf(buf, sizeof(buf), "%lu", foot);
RETERR(str_totext(buf, target));
RETERR(str_totext(" ", target));
isc_region_consume(&sr, 1);
subcoding = uint8_fromregion(&sr);
isc_region_consume(&sr, 1);
- sprintf(buf, "%u %u %u", meaning, coding, subcoding);
+ snprintf(buf, sizeof(buf), "%u %u %u", meaning, coding, subcoding);
RETERR(str_totext(buf, target));
if (sr.length == 0U)
unsigned long num;
num = uint32_fromregion(&dregion);
isc_region_consume(&dregion, 4);
- sprintf(buf, comm ? "%-10lu ; " : "%lu", num);
+ snprintf(buf, sizeof(buf), comm ? "%-10lu ; " : "%lu", num);
RETERR(str_totext(buf, target));
if (comm) {
RETERR(str_totext(soa_fieldnames[i], target));
*/
n = uint8_fromregion(&sr);
isc_region_consume(&sr, 1);
- sprintf(buf, "%u ", n);
+ snprintf(buf, sizeof(buf), "%u ", n);
RETERR(str_totext(buf, target));
/*
*/
n = uint8_fromregion(&sr);
isc_region_consume(&sr, 1);
- sprintf(buf, "%u", n);
+ snprintf(buf, sizeof(buf), "%u", n);
RETERR(str_totext(buf, target));
/*
*/
n = uint32_fromregion(&sr);
isc_region_consume(&sr, 4);
- sprintf(buf, "%lu ", n);
+ snprintf(buf, sizeof(buf), "%lu ", n);
RETERR(str_totext(buf, target));
/*
*/
n = uint32_fromregion(&sr);
isc_region_consume(&sr, 4);
- sprintf(buf, "%lu ", n);
+ snprintf(buf, sizeof(buf), "%lu ", n);
RETERR(str_totext(buf, target));
/*
*/
n = uint16_fromregion(&sr);
isc_region_consume(&sr, 2);
- sprintf(buf, "%lu ", n);
+ snprintf(buf, sizeof(buf), "%lu ", n);
RETERR(str_totext(buf, target));
/*
if (dns_tsigrcode_totext((dns_rcode_t)n, target) == ISC_R_SUCCESS)
RETERR(str_totext(" ", target));
else {
- sprintf(buf, "%lu ", n);
+ snprintf(buf, sizeof(buf), "%lu ", n);
RETERR(str_totext(buf, target));
}
*/
n = uint16_fromregion(&sr);
isc_region_consume(&sr, 2);
- sprintf(buf, "%lu", n);
+ snprintf(buf, sizeof(buf), "%lu", n);
RETERR(str_totext(buf, target));
/*
*/
n = uint16_fromregion(&sr);
isc_region_consume(&sr, 2);
- sprintf(buf, "%lu", n);
+ snprintf(buf, sizeof(buf), "%lu", n);
RETERR(str_totext(buf, target));
/*
*/
n = uint8_fromregion(&sr);
isc_region_consume(&sr, 1);
- sprintf(buf, "%u ", n);
+ snprintf(buf, sizeof(buf), "%u ", n);
RETERR(str_totext(buf, target));
/*
*/
n = uint8_fromregion(&sr);
isc_region_consume(&sr, 1);
- sprintf(buf, "%u ", n);
+ snprintf(buf, sizeof(buf), "%u ", n);
RETERR(str_totext(buf, target));
/*
*/
n = uint8_fromregion(&sr);
isc_region_consume(&sr, 1);
- sprintf(buf, "%u", n);
+ snprintf(buf, sizeof(buf), "%u", n);
RETERR(str_totext(buf, target));
/*
*/
priority = uint16_fromregion(®ion);
isc_region_consume(®ion, 2);
- sprintf(buf, "%u ", priority);
+ snprintf(buf, sizeof(buf), "%u ", priority);
RETERR(str_totext(buf, target));
/*
*/
weight = uint16_fromregion(®ion);
isc_region_consume(®ion, 2);
- sprintf(buf, "%u ", weight);
+ snprintf(buf, sizeof(buf), "%u ", weight);
RETERR(str_totext(buf, target));
/*
prefixlen = sr.base[0];
INSIST(prefixlen <= 128);
isc_region_consume(&sr, 1);
- sprintf(buf, "%u", prefixlen);
+ snprintf(buf, sizeof(buf), "%u", prefixlen);
RETERR(str_totext(buf, target));
RETERR(str_totext(" ", target));
dns_rdata_toregion(rdata, ®ion);
num = uint16_fromregion(®ion);
isc_region_consume(®ion, 2);
- sprintf(buf, "%u", num);
+ snprintf(buf, sizeof(buf), "%u", num);
RETERR(str_totext(buf, target));
RETERR(str_totext(" ", target));
dns_rdata_toregion(rdata, ®ion);
RETERR(str_totext("0x", target));
while (region.length != 0) {
- sprintf(buf, "%02x", region.base[0]);
+ snprintf(buf, sizeof(buf), "%02x", region.base[0]);
isc_region_consume(®ion, 1);
RETERR(str_totext(buf, target));
}
dns_rdata_toregion(rdata, ®ion);
num = uint16_fromregion(®ion);
isc_region_consume(®ion, 2);
- sprintf(buf, "%u", num);
+ snprintf(buf, sizeof(buf), "%u", num);
RETERR(str_totext(buf, target));
RETERR(str_totext(" ", target));
isc_region_consume(&sr, 4);
proto = uint8_fromregion(&sr);
- sprintf(buf, "%u", proto);
+ snprintf(buf, sizeof(buf), "%u", proto);
RETERR(str_totext(" ", target));
RETERR(str_totext(buf, target));
isc_region_consume(&sr, 1);
if (sr.base[i] != 0)
for (j = 0; j < 8; j++)
if ((sr.base[i] & (0x80 >> j)) != 0) {
- sprintf(buf, "%u", i * 8 + j);
+ snprintf(buf, sizeof(buf),
+ "%u", i * 8 + j);
RETERR(str_totext(" ", target));
RETERR(str_totext(buf, target));
}
return (result);
}
- sprintf(isc_buffer_used(&httpd->headerbuffer), "%s %03u %s\r\n",
- httpd->protocol, httpd->retcode, httpd->retmsg);
+ snprintf(isc_buffer_used(&httpd->headerbuffer),
+ (int)isc_buffer_availablelength(&httpd->headerbuffer),
+ "%s %03u %s\r\n", httpd->protocol, httpd->retcode,
+ httpd->retmsg);
isc_buffer_add(&httpd->headerbuffer, needlen);
return (ISC_R_SUCCESS);
}
if (val != NULL)
- sprintf(isc_buffer_used(&httpd->headerbuffer),
- "%s: %s\r\n", name, val);
+ snprintf(isc_buffer_used(&httpd->headerbuffer),
+ isc_buffer_availablelength(&httpd->headerbuffer),
+ "%s: %s\r\n", name, val);
else
- sprintf(isc_buffer_used(&httpd->headerbuffer),
- "%s\r\n", name);
+ snprintf(isc_buffer_used(&httpd->headerbuffer),
+ isc_buffer_availablelength(&httpd->headerbuffer),
+ "%s\r\n", name);
isc_buffer_add(&httpd->headerbuffer, needlen);
return (result);
}
- sprintf(isc_buffer_used(&httpd->headerbuffer), "\r\n");
+ snprintf(isc_buffer_used(&httpd->headerbuffer),
+ isc_buffer_availablelength(&httpd->headerbuffer), "\r\n");
isc_buffer_add(&httpd->headerbuffer, 2);
return (ISC_R_SUCCESS);
unsigned int needlen;
char buf[sizeof "18446744073709551616"];
- sprintf(buf, "%d", val);
+ snprintf(buf, sizeof(buf), "%d", val);
needlen = strlen(name); /* name itself */
needlen += 2 + strlen(buf); /* :<space> and val */
return (result);
}
- sprintf(isc_buffer_used(&httpd->headerbuffer),
- "%s: %s\r\n", name, buf);
+ snprintf(isc_buffer_used(&httpd->headerbuffer),
+ isc_buffer_availablelength(&httpd->headerbuffer),
+ "%s: %s\r\n", name, buf);
isc_buffer_add(&httpd->headerbuffer, needlen);
{
static const char *fmt = "%u.%u.%u.%u";
char tmp[sizeof("255.255.255.255")];
+ int n;
- if ((size_t)sprintf(tmp, fmt, src[0], src[1], src[2], src[3]) >= size)
- {
+
+ n = snprintf(tmp, sizeof(tmp), fmt, src[0], src[1], src[2], src[3]);
+ if (n < 0 || (size_t)n >= size) {
errno = ENOSPC;
return (NULL);
}
tp += strlen(tp);
break;
}
- tp += sprintf(tp, "%x", words[i]);
+ INSIST((tp - tmp) < sizeof(tmp));
+ tp += snprintf(tp, sizeof(tmp) - (tp - tmp), "%x", words[i]);
}
/* Was it a trailing run of 0x00's? */
if (best.base != -1 && (best.base + best.len) ==
isc_logmessage_t *message, *next;
isc_time_t oldest;
isc_interval_t interval;
+ size_t size;
isc_interval_set(&interval,
lcfg->duplicate_interval, 0);
* It wasn't in the duplicate interval,
* so add it to the message list.
*/
- message = isc_mem_get(lctx->mctx,
- sizeof(isc_logmessage_t) +
- strlen(lctx->buffer) + 1);
+ size = sizeof(isc_logmessage_t) +
+ strlen(lctx->buffer) + 1;
+ message = isc_mem_get(lctx->mctx, size);
if (message != NULL) {
/*
* Put the text immediately after
* the struct. The strcpy is safe.
*/
message->text = (char *)(message + 1);
- strcpy(message->text, lctx->buffer);
+ size -= sizeof(isc_logmessage_t);
+ strlcpy(message->text, lctx->buffer,
+ size);
TIME_NOW(&message->time);
ctxobj = json_object_new_object();
CHECKMEM(ctxobj);
- sprintf(buf, "%p", ctx);
+ snprintf(buf, sizeof(buf), "%p", ctx);
obj = json_object_new_string(buf);
CHECKMEM(obj);
json_object_object_add(ctxobj, "id", obj);
CHECKMEM(taskobj);
json_object_array_add(array, taskobj);
- sprintf(buf, "%p", task);
+ snprintf(buf, sizeof(buf), "%p", task);
obj = json_object_new_string(buf);
CHECKMEM(obj);
json_object_object_add(taskobj, "id", obj);
memset(&iter->current, 0, sizeof(iter->current));
iter->current.af = iter->clua_sa.sa_family;
memset(iter->current.name, 0, sizeof(iter->current.name));
- sprintf(iter->current.name, "clua%d", ci.aliasid);
+ snprintf(iter->current.name, sizeof(iter->current.name),
+ "clua%d", ci.aliasid);
iter->current.flags = INTERFACE_F_UP;
get_inaddr(&iter->current.address, &ci.addr);
get_inaddr(&iter->current.netmask, &ci.netmask);
LOCK(&sock->lock);
- sprintf(buf, "%p", sock);
+ snprintf(buf, sizeof(buf), "%p", sock);
obj = json_object_new_string(buf);
CHECKMEM(obj);
json_object_object_add(entry, "id", obj);
LOCK(&sock->lock);
- sprintf(buf, "%p", sock);
+ snprintf(buf, sizeof(buf), "%p", sock);
obj = json_object_new_string(buf);
CHECKMEM(obj);
json_object_object_add(entry, "id", obj);
len = vsnprintf(message, sizeof(message), format, args);
#define ELIPSIS " ... "
if (len >= sizeof(message)) {
- strcpy(message + sizeof(message) - sizeof(ELIPSIS) - 1,
- ELIPSIS);
+ message[sizeof(message) - sizeof(ELIPSIS)] = 0;
+ strlcat(message, ELIPSIS, sizeof(message));
}
if ((flags & (CFG_LOG_NEAR|CFG_LOG_BEFORE|CFG_LOG_NOPREP)) != 0) {