tzstring = (char *)XSTRING_DATA(zone);
} else if (INTP(zone)) {
int abszone = abs(XINT(zone));
- snprintf(tzbuf, countof(tzbuf) - 1, "XXX%s%d:%02d:%02d",
- "-" + (XINT(zone) < 0), abszone / (60 * 60),
- (abszone / 60) % 60, abszone % 60);
+ int sz = snprintf(tzbuf, sizeof(tzbuf), "XXX%s%d:%02d:%02d",
+ "-" + (XINT(zone) < 0), abszone / (60 * 60),
+ (abszone / 60) % 60, abszone % 60);
+ assert(sz >= 0 && (size_t)sz < sizeof(tzbuf));
tzstring = tzbuf;
} else {
error("Invalid time zone specification");
tzstring = (char *)XSTRING_DATA(zone);
else if (INTP(zone)) {
int abszone = abs(XINT(zone));
- sprintf(tzbuf, "XXX%s%d:%02d:%02d",
- "-" + (XINT(zone) < 0), abszone / (60 * 60),
- (abszone / 60) % 60, abszone % 60);
+ int sz = snprintf(tzbuf, sizeof(tzbuf), "XXX%s%d:%02d:%02d",
+ "-" + (XINT(zone) < 0), abszone / (60 * 60),
+ (abszone / 60) % 60, abszone % 60);
+ assert(sz>=0 && (size_t)sz < sizeof(tzbuf));
tzstring = tzbuf;
} else
error("Invalid time zone specification");
/* No local time zone name is available; use "+-NNNN"
instead. */
int am = (offset < 0 ? -offset : offset) / 60;
- sprintf(buf, "%c%02d%02d", (offset < 0 ? '-' : '+'),
- am / 60, am % 60);
+ int sz = snprintf(buf, sizeof(buf), "%c%02d%02d",
+ (offset < 0 ? '-' : '+'),
+ am / 60, am % 60);
+ assert(sz>=0 && (size_t)sz < sizeof(buf));
s = buf;
}
return list2(make_int(offset), build_string(s));