Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 25 Jul 2014 03:24:01 +0000 (UTC)
From:      "Pedro F. Giffuni" <pfg@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject:   svn commit: r269085 - stable/10/lib/libc/stdio
Message-ID:  <201407250324.s6P3O1Nb071222@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: pfg
Date: Fri Jul 25 03:24:00 2014
New Revision: 269085
URL: http://svnweb.freebsd.org/changeset/base/269085

Log:
  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.

Modified:
  stable/10/lib/libc/stdio/fputs.c
  stable/10/lib/libc/stdio/fputws.c
  stable/10/lib/libc/stdio/puts.c
  stable/10/lib/libc/stdio/putw.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/lib/libc/stdio/fputs.c
==============================================================================
--- stable/10/lib/libc/stdio/fputs.c	Fri Jul 25 01:29:22 2014	(r269084)
+++ stable/10/lib/libc/stdio/fputs.c	Fri Jul 25 03:24:00 2014	(r269085)
@@ -55,7 +55,7 @@ fputs(const char * __restrict s, FILE * 
 	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);

Modified: stable/10/lib/libc/stdio/fputws.c
==============================================================================
--- stable/10/lib/libc/stdio/fputws.c	Fri Jul 25 01:29:22 2014	(r269084)
+++ stable/10/lib/libc/stdio/fputws.c	Fri Jul 25 03:24:00 2014	(r269085)
@@ -67,7 +67,7 @@ fputws_l(const wchar_t * __restrict ws, 
 		    &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);

Modified: stable/10/lib/libc/stdio/puts.c
==============================================================================
--- stable/10/lib/libc/stdio/puts.c	Fri Jul 25 01:29:22 2014	(r269084)
+++ stable/10/lib/libc/stdio/puts.c	Fri Jul 25 03:24:00 2014	(r269085)
@@ -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;

Modified: stable/10/lib/libc/stdio/putw.c
==============================================================================
--- stable/10/lib/libc/stdio/putw.c	Fri Jul 25 01:29:22 2014	(r269084)
+++ stable/10/lib/libc/stdio/putw.c	Fri Jul 25 03:24:00 2014	(r269085)
@@ -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);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201407250324.s6P3O1Nb071222>