Replace uses of sprintf(3) with snprintf(3).
At -00, the compiler warns about sprintf(3), and it is promoted to an
error by -Werror.
Change-Id: Ibb380d27d7eb09dda8ac785be2478d656b379190
diff --git a/libc/dns/resolv/res_cache.c b/libc/dns/resolv/res_cache.c
index 9ca5419..dd77693 100644
--- a/libc/dns/resolv/res_cache.c
+++ b/libc/dns/resolv/res_cache.c
@@ -1915,7 +1915,7 @@
hints.ai_family = PF_UNSPEC;
hints.ai_socktype = SOCK_DGRAM; /*dummy*/
hints.ai_flags = AI_NUMERICHOST;
- sprintf(sbuf, "%u", NAMESERVER_PORT);
+ snprintf(sbuf, sizeof(sbuf), "%u", NAMESERVER_PORT);
index = 0;
for (i = 0; i < numservers && i < MAXNS; i++) {
diff --git a/libc/dns/resolv/res_debug.c b/libc/dns/resolv/res_debug.c
index 7a05a5f..5f889cb 100644
--- a/libc/dns/resolv/res_debug.c
+++ b/libc/dns/resolv/res_debug.c
@@ -126,14 +126,6 @@
#include <strings.h>
#include <time.h>
-
-
-#ifdef SPRINTF_CHAR
-# define SPRINTF(x) strlen(sprintf/**/x)
-#else
-# define SPRINTF(x) sprintf x
-#endif
-
extern const char * const _res_opcodes[];
extern const char * const _res_sectioncodes[];
@@ -588,7 +580,7 @@
}
}
- sprintf(unname, "%d", number); /* XXX nonreentrant */
+ snprintf(unname, sizeof(unname), "%d", number); /* XXX nonreentrant */
if (success)
*success = 0;
return (unname);
@@ -605,7 +597,7 @@
return (syms->humanname);
}
}
- sprintf(unname, "%d", number); /* XXX nonreentrant */
+ snprintf(unname, sizeof(unname), "%d", number); /* XXX nonreentrant */
if (success)
*success = 0;
return (unname);
@@ -625,7 +617,7 @@
return (result);
if (type < 0 || type > 0xffff)
return ("BADTYPE");
- sprintf(typebuf, "TYPE%d", type);
+ snprintf(typebuf, sizeof(typebuf), "TYPE%d", type);
return (typebuf);
}
@@ -661,7 +653,7 @@
return (result);
if (class < 0 || class > 0xffff)
return ("BADCLASS");
- sprintf(classbuf, "CLASS%d", class);
+ snprintf(classbuf, sizeof(classbuf), "CLASS%d", class);
return (classbuf);
}
@@ -703,7 +695,7 @@
case RES_NO_NIBBLE2: return "no-nibble2";
#endif
/* XXX nonreentrant */
- default: sprintf(nbuf, "?0x%lx?", (u_long)option);
+ default: snprintf(nbuf, sizeof(nbuf), "?0x%lx?", (u_long)option);
return (nbuf);
}
}
@@ -716,7 +708,7 @@
static char nbuf[40]; /* XXX nonreentrant */
if (ns_format_ttl((u_long)value, nbuf, sizeof nbuf) < 0)
- sprintf(nbuf, "%u", value);
+ snprintf(nbuf, sizeof(nbuf), "%u", value);
return (nbuf);
}
@@ -745,7 +737,7 @@
break;
#endif
default:
- sprintf(ret, "[af%d]", u.sin.sin_family);
+ snprintf(ret, sizeof(ret), "[af%d]", u.sin.sin_family);
break;
}
if (size > 0U) {
@@ -777,7 +769,7 @@
val = mantissa * poweroften[exponent];
- (void) sprintf(retbuf, "%lu.%.2lu", val/100, val%100);
+ (void) snprintf(retbuf, sizeof(retbuf), "%lu.%.2lu", val/100, val%100);
return (retbuf);
}
@@ -1028,7 +1020,7 @@
/* takes an on-the-wire LOC RR and formats it in a human readable format. */
const char *
-loc_ntoa(const u_char *binary, char *ascii)
+loc_ntoa(const u_char *binary, char *ascii, size_t bufsiz)
{
static const char *error = "?";
static char tmpbuf[sizeof
@@ -1055,7 +1047,7 @@
ascii = tmpbuf;
if (versionval) {
- (void) sprintf(ascii, "; error: unknown LOC RR version");
+ (void) snprintf(ascii, bufsiz, "; error: unknown LOC RR version");
return (ascii);
}
@@ -1114,7 +1106,7 @@
hpstr = strdup(precsize_ntoa((u_int32_t)hpval));
vpstr = strdup(precsize_ntoa((u_int32_t)vpval));
- sprintf(ascii,
+ snprintf(ascii, bufsiz,
"%d %.2d %.2d.%.3d %c %d %.2d %.2d.%.3d %c %s%d.%.2dm %sm %sm %sm",
latdeg, latmin, latsec, latsecfrac, northsouth,
longdeg, longmin, longsec, longsecfrac, eastwest,
@@ -1180,7 +1172,7 @@
#endif
mytime->tm_year += 1900;
mytime->tm_mon += 1;
- sprintf(output, "%04d%02d%02d%02d%02d%02d",
+ snprintf(output, sizeof(output), "%04d%02d%02d%02d%02d%02d",
mytime->tm_year, mytime->tm_mon, mytime->tm_mday,
mytime->tm_hour, mytime->tm_min, mytime->tm_sec);
return (output);
diff --git a/libc/dns/resolv/res_query.c b/libc/dns/resolv/res_query.c
index 6cd9b15..09be8b4 100644
--- a/libc/dns/resolv/res_query.c
+++ b/libc/dns/resolv/res_query.c
@@ -414,7 +414,7 @@
RES_SET_H_ERRNO(statp, NO_RECOVERY);
return (-1);
}
- sprintf(nbuf, "%s.%s", name, domain);
+ snprintf(nbuf, sizeof(nbuf), "%s.%s", name, domain);
}
return (res_nquery(statp, longname, class, type, answer, anslen));
}