aboutsummaryrefslogtreecommitdiff
path: root/sys/kern/subr_sbuf.c
diff options
context:
space:
mode:
authorPoul-Henning Kamp <phk@FreeBSD.org>2015-10-02 09:23:14 +0000
committerPoul-Henning Kamp <phk@FreeBSD.org>2015-10-02 09:23:14 +0000
commitd58b610faa4552666982078efafd542171304865 (patch)
tree84d32af2ff6a4bcd3ab62b9f0985661497d9d6f1 /sys/kern/subr_sbuf.c
parent0bc80630127ddbbf54effb0ad0b2b8e22ba9e881 (diff)
downloadsrc-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.c4
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)