itmk: replace overlapping strcpy with memmove - plan9port - [fork] Plan 9 from user space Err mx1.adamsgaard.dk 70 hgit clone git://src.adamsgaard.dk/plan9port URL:git://src.adamsgaard.dk/plan9port mx1.adamsgaard.dk 70 1Log /src/plan9port/log.gph mx1.adamsgaard.dk 70 1Files /src/plan9port/files.gph mx1.adamsgaard.dk 70 1Refs /src/plan9port/refs.gph mx1.adamsgaard.dk 70 1README /src/plan9port/file/README.md.gph mx1.adamsgaard.dk 70 1LICENSE /src/plan9port/file/LICENSE.gph mx1.adamsgaard.dk 70 i--- Err mx1.adamsgaard.dk 70 1commit 154140a22b1c697f6a3edb3e5913efded1be082a /src/plan9port/commit/154140a22b1c697f6a3edb3e5913efded1be082a.gph mx1.adamsgaard.dk 70 1parent 8cb7308f3a24249ed091c7decf22005c64099783 /src/plan9port/commit/8cb7308f3a24249ed091c7decf22005c64099783.gph mx1.adamsgaard.dk 70 hAuthor: Russ Cox URL:mailto:rsc@swtch.com mx1.adamsgaard.dk 70 iDate: Sun, 17 May 2020 20:06:31 -0400 Err mx1.adamsgaard.dk 70 i Err mx1.adamsgaard.dk 70 imk: replace overlapping strcpy with memmove Err mx1.adamsgaard.dk 70 i Err mx1.adamsgaard.dk 70 iFound by ASAN. Err mx1.adamsgaard.dk 70 i Err mx1.adamsgaard.dk 70 iDiffstat: Err mx1.adamsgaard.dk 70 i M src/cmd/mk/env.c | 3 ++- Err mx1.adamsgaard.dk 70 i Err mx1.adamsgaard.dk 70 i1 file changed, 2 insertions(+), 1 deletion(-) Err mx1.adamsgaard.dk 70 i--- Err mx1.adamsgaard.dk 70 1diff --git a/src/cmd/mk/env.c b/src/cmd/mk/env.c /src/plan9port/file/src/cmd/mk/env.c.gph mx1.adamsgaard.dk 70 it@@ -123,7 +123,8 @@ buildenv(Job *j, int slot) Err mx1.adamsgaard.dk 70 i qp = strchr(cp+1, ')'); Err mx1.adamsgaard.dk 70 i if(qp){ Err mx1.adamsgaard.dk 70 i *qp = 0; Err mx1.adamsgaard.dk 70 i- strcpy(w->s, cp+1); Err mx1.adamsgaard.dk 70 i+ /* strcpy, but might overlap */ Err mx1.adamsgaard.dk 70 i+ memmove(w->s, cp+1, strlen(cp+1)+1); Err mx1.adamsgaard.dk 70 i l = &w->next; Err mx1.adamsgaard.dk 70 i w = w->next; Err mx1.adamsgaard.dk 70 i continue; Err mx1.adamsgaard.dk 70 .