diff options
author | Poul-Henning Kamp <phk@FreeBSD.org> | 2015-10-02 09:23:14 +0000 |
---|---|---|
committer | Poul-Henning Kamp <phk@FreeBSD.org> | 2015-10-02 09:23:14 +0000 |
commit | d58b610faa4552666982078efafd542171304865 (patch) | |
tree | 84d32af2ff6a4bcd3ab62b9f0985661497d9d6f1 /sys/kern/subr_sbuf.c | |
parent | 0bc80630127ddbbf54effb0ad0b2b8e22ba9e881 (diff) | |
download | src-d58b610faa4552666982078efafd542171304865.tar.gz src-d58b610faa4552666982078efafd542171304865.zip |
Fail the sbuf if vsnprintf(3) fails.
Notes
Notes:
svn path=/head/; revision=288484
Diffstat (limited to 'sys/kern/subr_sbuf.c')
-rw-r--r-- | sys/kern/subr_sbuf.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/kern/subr_sbuf.c b/sys/kern/subr_sbuf.c index 3c36b28628ef..5314590bce26 100644 --- a/sys/kern/subr_sbuf.c +++ b/sys/kern/subr_sbuf.c @@ -623,6 +623,10 @@ sbuf_vprintf(struct sbuf *s, const char *fmt, va_list ap) va_copy(ap_copy, ap); len = vsnprintf(&s->s_buf[s->s_len], SBUF_FREESPACE(s) + 1, fmt, ap_copy); + if (len < 0) { + s->s_error = errno; + return (-1); + } va_end(ap_copy); if (SBUF_FREESPACE(s) >= len) |