From 3d1cdf4106fb107757898c92e55e928d35c02af9 Mon Sep 17 00:00:00 2001 From: Paul Smith Date: Fri, 2 Apr 1999 06:19:33 +0000 Subject: * Fix possible memory stomp. * A few admin file cleanups. --- ChangeLog | 6 ++++++ NEWS | 7 +++---- README.template | 25 ++++++++++++++++++++++++- job.c | 5 ++++- 4 files changed, 37 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index aeba342..fcb7aba 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +1999-04-01 Paul D. Smith + + * 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 * read.c (readline): Ignore carriage returns at the end of the diff --git a/NEWS b/NEWS index 4b6978f..8a1e11b 100644 --- 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. Version 3.77 diff --git a/README.template b/README.template index e011f99..c9a199d 100644 --- a/README.template +++ b/README.template @@ -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 5999558..19f386b 100644 --- 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; -- cgit v1.2.3