summaryrefslogtreecommitdiff
path: root/Build
diff options
context:
space:
mode:
Diffstat (limited to 'Build')
-rw-r--r--Build/source/texk/devnag/ChangeLog6
-rw-r--r--Build/source/texk/devnag/src/devnag.c4
2 files changed, 8 insertions, 2 deletions
diff --git a/Build/source/texk/devnag/ChangeLog b/Build/source/texk/devnag/ChangeLog
index 07336c9eb2f..0a3e00f3554 100644
--- a/Build/source/texk/devnag/ChangeLog
+++ b/Build/source/texk/devnag/ChangeLog
@@ -1,3 +1,9 @@
+2014-02-18 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * src/devnag.c (dnproc): Bug fix: More strcpy() => memmove()
+ when src and dest overlap.
+ Reported by Richard Koch <koch@math.uoregon.edu>.
+
2014-02-17 Peter Breitenlohner <peb@mppmu.mpg.de>
* src/devnag.c (dnproc): Bug fix: Replace strcpy() by memmove()
diff --git a/Build/source/texk/devnag/src/devnag.c b/Build/source/texk/devnag/src/devnag.c
index 4e48d7ab248..71ee0993d0b 100644
--- a/Build/source/texk/devnag/src/devnag.c
+++ b/Build/source/texk/devnag/src/devnag.c
@@ -2265,7 +2265,7 @@ void put_word(void) {
if (do_hyphen) { /* hack */
do {
w_ptr = strstr(word, "\\-\\qq{");
- if (w_ptr != NULL) strcpy(w_ptr, w_ptr+2);
+ if (w_ptr != NULL) memmove(w_ptr, w_ptr+2, strlen(w_ptr+2)+1);
}
while (w_ptr != NULL);
}
@@ -2499,7 +2499,7 @@ char find_dn(void) {
}
dn_ptr += 1;
}
- strcpy(inbuf, dn_ptr);
+ memmove(inbuf, dn_ptr, strlen(dn_ptr)+1);
return(TRUE);
}