From 6387bed4f282c43ed1fcca715a73fabbecb0390b Mon Sep 17 00:00:00 2001 From: Vladimir Dubrovin <3proxy@3proxy.ru> Date: Fri, 20 Dec 2024 14:38:58 +0300 Subject: [PATCH] Replace strcpy with memmove for overlapping regions --- src/ftp.c | 4 ++-- src/proxy.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ftp.c b/src/ftp.c index 703d78c..4d9ba04 100644 --- a/src/ftp.c +++ b/src/ftp.c @@ -121,7 +121,7 @@ int ftpsyst(struct clientparam *param, unsigned char *buf, unsigned len){ buf[3] = 0; if(atoi((char *)buf)/100 != 2) return 723; buf[i-2] = 0; - strcpy((char *)buf, (char *)buf+4); + memmove((char *)buf, (char *)buf+4, strlen((char *)buf+4)+1); return 0; } @@ -145,7 +145,7 @@ int ftppwd(struct clientparam *param, unsigned char *buf, unsigned len){ b++; *e = 0; } - strcpy((char *)buf, b); + memmove((char *)buf, b, strlen(b)+1); return 0; } diff --git a/src/proxy.c b/src/proxy.c index 516828b..a915db0 100644 --- a/src/proxy.c +++ b/src/proxy.c @@ -149,7 +149,7 @@ static void logurl(struct clientparam * param, char * buf, char * req, int ftp){ sb = strchr(buf, '\r'); if(sb)*sb = 0; if(ftp && (se = strchr(buf + 10, ':')) && (sb = strchr(se, '@')) ) { - strcpy(se, sb); + memmove(se, sb, strlen(sb)+1); } } if(param->res != 555 && param->res != 508)dolog(param, (unsigned char *)(req?buf:NULL));