From 414a4cb93173e7abba9c0ff6950044c5254370d1 Mon Sep 17 00:00:00 2001 From: pfg Date: Fri, 25 Jul 2014 03:24:00 +0000 Subject: MFC r268985, r269001: Avoid possible cast degradation. Assign iov_len first, avoiding the cast to uio_resid (int in stdio) from degrading the value. Small cosmetical fix while here. --- lib/libc/stdio/fputs.c | 2 +- lib/libc/stdio/fputws.c | 2 +- lib/libc/stdio/puts.c | 4 ++-- lib/libc/stdio/putw.c | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/libc/stdio/fputs.c b/lib/libc/stdio/fputs.c index 3b8f2c9..32e5764 100644 --- a/lib/libc/stdio/fputs.c +++ b/lib/libc/stdio/fputs.c @@ -55,7 +55,7 @@ fputs(const char * __restrict s, FILE * __restrict fp) struct __siov iov; iov.iov_base = (void *)s; - iov.iov_len = uio.uio_resid = strlen(s); + uio.uio_resid = iov.iov_len = strlen(s); uio.uio_iov = &iov; uio.uio_iovcnt = 1; FLOCKFILE(fp); diff --git a/lib/libc/stdio/fputws.c b/lib/libc/stdio/fputws.c index fa8d317..4153067 100644 --- a/lib/libc/stdio/fputws.c +++ b/lib/libc/stdio/fputws.c @@ -67,7 +67,7 @@ fputws_l(const wchar_t * __restrict ws, FILE * __restrict fp, locale_t locale) &fp->_mbstate); if (nbytes == (size_t)-1) goto error; - iov.iov_len = uio.uio_resid = nbytes; + uio.uio_resid = iov.iov_len = nbytes; if (__sfvwrite(fp, &uio) != 0) goto error; } while (wsp != NULL); diff --git a/lib/libc/stdio/puts.c b/lib/libc/stdio/puts.c index 5ee7fc1..124afc7 100644 --- a/lib/libc/stdio/puts.c +++ b/lib/libc/stdio/puts.c @@ -51,12 +51,12 @@ int puts(char const *s) { int retval; - size_t c = strlen(s); + size_t c; struct __suio uio; struct __siov iov[2]; iov[0].iov_base = (void *)s; - iov[0].iov_len = c; + iov[0].iov_len = c = strlen(s); iov[1].iov_base = "\n"; iov[1].iov_len = 1; uio.uio_resid = c + 1; diff --git a/lib/libc/stdio/putw.c b/lib/libc/stdio/putw.c index 0360caf..ecd5d095 100644 --- a/lib/libc/stdio/putw.c +++ b/lib/libc/stdio/putw.c @@ -50,7 +50,7 @@ putw(int w, FILE *fp) struct __siov iov; iov.iov_base = &w; - iov.iov_len = uio.uio_resid = sizeof(w); + uio.uio_resid = iov.iov_len = sizeof(w); uio.uio_iov = &iov; uio.uio_iovcnt = 1; FLOCKFILE(fp); -- cgit v1.1