if ((*p == '\\' && *(p + 1) == 'x')
|| iscntrl((unsigned char) *p)) {
- if (snprintf(r, rsz, "\\x%02x", (unsigned char) *p) < 4)
+ if (rsz < 5)
break;
+ snprintf(r, rsz, "\\x%02x", (unsigned char) *p);
r += 4;
rsz -= 4;
*width += 4;
* printable char according to the current locales.
*/
if (!isprint((unsigned char) *p)) {
- if (snprintf(r, rsz, "\\x%02x", (unsigned char) *p) < 4)
+ if (rsz < 5)
break;
+ snprintf(r, rsz, "\\x%02x", (unsigned char) *p);
r += 4;
rsz -= 4;
*width += 4;
} else if (!iswprint(wc)) {
size_t i;
for (i = 0; i < len; i++) {
- if (snprintf(r, rsz, "\\x%02x", (unsigned char) p[i]) < 4)
+ if (rsz < 5)
break;
+ snprintf(r, rsz, "\\x%02x", (unsigned char) p[i]);
r += 4;
rsz -= 4;
*width += 4;
}
#else
else if (!isprint((unsigned char) *p)) {
- if (snprintf(r, rsz, "\\x%02x", (unsigned char) *p) < 4)
+ if (rsz < 5)
break;
+ snprintf(r, rsz, "\\x%02x", (unsigned char) *p);
p++;
r += 4;
rsz -= 4;
* printable char according to the current locales.
*/
if (!isprint((unsigned char) *p)) {
- if (snprintf(r, rsz, "\\x%02x", (unsigned char) *p) < 4)
+ if (rsz < 5)
break;
+ snprintf(r, rsz, "\\x%02x", (unsigned char) *p);
r += 4;
rsz -= 4;
*width += 4;
rsz--;
}
} else if (*p == '\\' && *(p + 1) == 'x') {
- if (snprintf(r, rsz, "\\x%02x", (unsigned char) *p) < 4)
+ if (rsz < 5)
break;
+ snprintf(r, rsz, "\\x%02x", (unsigned char) *p);
r += 4;
rsz -= 4;
*width += 4;