summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Smith <psmith@gnu.org>1999-04-02 06:19:33 +0000
committerPaul Smith <psmith@gnu.org>1999-04-02 06:19:33 +0000
commit3d1cdf4106fb107757898c92e55e928d35c02af9 (patch)
treee6057e0287cb55abee0ad257f69ea16bc2a992c2
parent7052a5715236b84ebe0b3011c4de75ce19c4ab5d (diff)
downloadgunmake-3d1cdf4106fb107757898c92e55e928d35c02af9.tar.gz
* Fix possible memory stomp.
* A few admin file cleanups.
-rw-r--r--ChangeLog6
-rw-r--r--NEWS7
-rw-r--r--README.template25
-rw-r--r--job.c5
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 <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 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;