summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_descrip.c
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2014-10-05 17:35:59 +0000
committerkib <kib@FreeBSD.org>2014-10-05 17:35:59 +0000
commit2ad09fbf89ce51a0a513c5cc0f55e34513fd72b7 (patch)
tree2091f4002dc45c6f0d3f7e98530d7486ab2a385f /sys/kern/kern_descrip.c
parentbc27ba7fe5267328a855380391db0961a052eacf (diff)
downloadFreeBSD-src-2ad09fbf89ce51a0a513c5cc0f55e34513fd72b7.zip
FreeBSD-src-2ad09fbf89ce51a0a513c5cc0f55e34513fd72b7.tar.gz
On error, sbuf_bcat() returns -1. Some callers returned this -1 to
the upper layers, which interpret it as errno value, which happens to be ERESTART. The result was spurious restarts of the sysctls in loop, e.g. kern.proc.proc, instead of returning ENOMEM to caller. Convert -1 from sbuf_bcat() to ENOMEM, when returning to the callers expecting errno. In collaboration with: pho Sponsored by: The FreeBSD Foundation (kib) MFC after: 1 week
Diffstat (limited to 'sys/kern/kern_descrip.c')
-rw-r--r--sys/kern/kern_descrip.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c
index 5f6aa6f..72a7a8f 100644
--- a/sys/kern/kern_descrip.c
+++ b/sys/kern/kern_descrip.c
@@ -3097,7 +3097,7 @@ export_kinfo_to_sb(struct export_fd_buf *efbuf)
}
efbuf->remainder -= kif->kf_structsize;
}
- return (sbuf_bcat(efbuf->sb, kif, kif->kf_structsize));
+ return (sbuf_bcat(efbuf->sb, kif, kif->kf_structsize) == 0 ? 0 : ENOMEM);
}
static int
OpenPOWER on IntegriCloud