summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpfg <pfg@FreeBSD.org>2014-07-25 03:24:00 +0000
committerpfg <pfg@FreeBSD.org>2014-07-25 03:24:00 +0000
commit414a4cb93173e7abba9c0ff6950044c5254370d1 (patch)
tree662d996ede51e7070e29e2e5c6704042e3c1c92e
parent103bd6e167d38f5a8626fd51ccfcba53cd614e94 (diff)
downloadFreeBSD-src-414a4cb93173e7abba9c0ff6950044c5254370d1.zip
FreeBSD-src-414a4cb93173e7abba9c0ff6950044c5254370d1.tar.gz
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.
-rw-r--r--lib/libc/stdio/fputs.c2
-rw-r--r--lib/libc/stdio/fputws.c2
-rw-r--r--lib/libc/stdio/puts.c4
-rw-r--r--lib/libc/stdio/putw.c2
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);
OpenPOWER on IntegriCloud