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);
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to