mirror of
https://git.freebsd.org/ports.git
synced 2025-05-16 09:11:50 -04:00
30 lines
799 B
C
30 lines
799 B
C
--- rsync.c.orig 2015-03-09 14:08:51 UTC
|
|
+++ rsync.c
|
|
@@ -41,6 +41,7 @@
|
|
|
|
/* This has been taken from rsync:lib/compat.c */
|
|
|
|
+#if 0
|
|
/**
|
|
* Like strncpy but does not 0 fill the buffer and always null
|
|
* terminates.
|
|
@@ -61,6 +62,7 @@ static size_t strlcpy(char *d, const cha
|
|
}
|
|
return ret;
|
|
}
|
|
+#endif
|
|
|
|
/* splits filepath at the last '/', if any, like so:
|
|
* dirname basename filepath
|
|
@@ -117,7 +119,10 @@ int mkpath(const char *path, mode_t mode
|
|
return -1;
|
|
}
|
|
|
|
- strlcpy(temp,path,strlen(path));
|
|
+ if(strlcpy(temp,path,sizeof(temp))>=sizeof(temp)) {
|
|
+ csync_debug(1,"path too long: %s",path);
|
|
+ return -1;
|
|
+ }
|
|
csync_debug(1,"mkpath full path: %s",temp);
|
|
for( remaining=strchr(temp+1, '/'); remaining!=NULL; remaining=strchr(remaining+1, '/') ){
|
|
*remaining='\0';
|