svn commit: r264032 - in stable: 10/contrib/gcclibs/libcpp 9/contrib/gcclibs/libcpp

Dimitry Andric dim at FreeBSD.org
Wed Apr 2 06:17:58 UTC 2014


Author: dim
Date: Wed Apr  2 06:17:57 2014
New Revision: 264032
URL: http://svnweb.freebsd.org/changeset/base/264032

Log:
  MFC r263775:
  
  Avoid "cc1: warning: is shorter than expected" when using GNU cpp in
  combination with dtrace scripts, which have "#!/usr/sbin/dtrace -Cs"
  shebang lines.  This is because dtrace positions the file pointer after
  the shebang line, before passing the file to GNU cpp.
  
  To fix the warning, adjust the size downwards by the current position,
  after a bit of sanity checking.
  
  Suggested by:	avg

Modified:
  stable/9/contrib/gcclibs/libcpp/files.c
Directory Properties:
  stable/9/contrib/gcclibs/   (props changed)

Changes in other areas also in this revision:
Modified:
  stable/10/contrib/gcclibs/libcpp/files.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/9/contrib/gcclibs/libcpp/files.c
==============================================================================
--- stable/9/contrib/gcclibs/libcpp/files.c	Wed Apr  2 01:58:54 2014	(r264031)
+++ stable/9/contrib/gcclibs/libcpp/files.c	Wed Apr  2 06:17:57 2014	(r264032)
@@ -546,6 +546,7 @@ static bool
 read_file_guts (cpp_reader *pfile, _cpp_file *file)
 {
   ssize_t size, total, count;
+  off_t offset;
   uchar *buf;
   bool regular;
 
@@ -573,6 +574,21 @@ read_file_guts (cpp_reader *pfile, _cpp_
 	}
 
       size = file->st.st_size;
+
+      if ((offset = lseek(file->fd, 0, SEEK_CUR)) < 0)
+	{
+	  cpp_error (pfile, CPP_DL_ERROR, "%s has no current position",
+	    file->path);
+	  return false;
+	}
+      else if (offset > INTTYPE_MAXIMUM (ssize_t) || (ssize_t)offset > size)
+	{
+	  cpp_error (pfile, CPP_DL_ERROR, "current position of %s is too large",
+	    file->path);
+	  return false;
+	}
+
+      size -= (ssize_t)offset;
     }
   else
     /* 8 kilobytes is a sensible starting size.  It ought to be bigger


More information about the svn-src-stable-9 mailing list