]> git.ipfire.org Git - thirdparty/make.git/commitdiff
* Fix possible memory stomp.
authorPaul Smith <psmith@gnu.org>
Fri, 2 Apr 1999 06:19:33 +0000 (06:19 +0000)
committerPaul Smith <psmith@gnu.org>
Fri, 2 Apr 1999 06:19:33 +0000 (06:19 +0000)
* A few admin file cleanups.

ChangeLog
NEWS
README.template
job.c

index aeba3427fa2f56e3ff6e2d5ab0174be0473333ca..fcb7aba2d255568628079457aa90c641e3c91663 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+1999-04-01  Paul D. Smith  <psmith@gnu.org>
+
+       * job.c (construct_command_argv_internal): Use bcopy() to copy
+       overlapping strings, rather than strcpy().  ISO C says the latter
+       is undefined.  Found this in a bug report from 1996!  Ouch!
+
 1999-03-31  Paul D. Smith  <psmith@gnu.org>
 
        * read.c (readline): Ignore carriage returns at the end of the
diff --git a/NEWS b/NEWS
index 4b6978fccbf7f88ac3777964a81107cf361e81c1..8a1e11b2e4c8d699b5adee7b236bb2bca7691dd3 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -19,11 +19,10 @@ Version 3.78
   proceeds normally.
 
 * Make defines a new variable, .LIBPATTERNS.  This variable controls how
-  the link library dependency expansion (dependencies like ``-lfoo'') is
-  performed.
+  library dependency expansion (dependencies like ``-lfoo'') is performed.
 
-* Make allows CRLF sequences as well as traditional LF, in makefiles for
-  UNIX.
+* Make allows CRLF sequences as well as traditional LF, for
+  compatibility with makefiles created on other operating systems.
 \f
 Version 3.77
 
index e011f99928bc8dc9d5b04f9a254ff15c0b949774..c9a199dbd4e6a5b4ea7d4f6feb5204be6716f471 100644 (file)
@@ -3,17 +3,40 @@ All bugs reported for previous releases have been fixed.
 Some bugs surely remain.
 
 For general building and installation instructions, see the file INSTALL.
+
 If you need to build GNU Make and have no other `make' program to use,
 you can use the shell script `build.sh' instead.  To do this, first run
 `configure' as described in INSTALL.  Then, instead of typing `make' to
 build the program, type `sh build.sh'.  This should compile the program
 in the current directory.  Then you will have a Make program that you can
-use for `make install', or whatever else.
+use for `./make install', or whatever else.
 
 Some systems' Make programs are broken and cannot process the Makefile for
 GNU Make.  If you get errors from your system's Make when building GNU
 Make, try using `build.sh' instead.
 
+GNU make is fully documented in the GNU Make manual, which is contained
+in this distribution as the file make.texinfo.  You can also find
+on-line and preformatted (PostScript and DVI) versions at the FSF's web
+site.  There is information there about ordering hardcopy documentation.
+
+  http://www.gnu.org/
+  http://www.gnu.org/doc/doc.html
+  http://www.gnu.org/manual/manual.html
+
+Please send GNU make bug reports to bug-make@gnu.org.  Please see the
+section of the manual entitles `Problems and Bugs' for information on
+submitting bug reports.
+
+If you need help using GNU make, try these forums:
+
+  help-make@gnu.org
+  help-utils@gnu.org
+  news:gnu.utils.help
+  news:gnu.utils.bug
+
+Also:
+
   - See README.customs for details on integrating GNU make with the
     Customs distributed build environment from the Pmake distribution.
 
diff --git a/job.c b/job.c
index 59995586708b713a481e94981dbae81b70ab8254..19f386b1cf17762d2e6f0e255397c0a708033e1c 100644 (file)
--- a/job.c
+++ b/job.c
@@ -2014,7 +2014,10 @@ construct_command_argv_internal (line, restp, shell, ifs, batch_filename_ptr)
                   since it was most likely used to line
                   up the continued line with the previous one.  */
                if (*p == '\t')
-                 strcpy (p, p + 1);
+                  /* Note these overlap and strcpy() is undefined for
+                     overlapping objects in ANSI C.  The strlen() _IS_ right,
+                     since we need to copy the nul byte too.  */
+                 bcopy (p + 1, p, strlen(p));
 
                if (instring)
                  goto string_char;