Module Name:xsrc
Committed By: kamil
Date: Wed Oct 23 00:06:07 UTC 2019
Modified Files:
xsrc/external/mit/xedit/dist/lisp: pathname.c
Log Message:
Switch strncpy(3) with length of source to strlcpy(3) in xedit
Fixes build with gcc8.
To generate a diff of this commit:
cvs rdiff -u -r1.1.1.2 -r1.2 xsrc/external/mit/xedit/dist/lisp/pathname.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: xsrc/external/mit/xedit/dist/lisp/pathname.c
diff -u xsrc/external/mit/xedit/dist/lisp/pathname.c:1.1.1.2 xsrc/external/mit/xedit/dist/lisp/pathname.c:1.2
--- xsrc/external/mit/xedit/dist/lisp/pathname.c:1.1.1.2 Sun Jul 19 19:37:31 2015
+++ xsrc/external/mit/xedit/dist/lisp/pathname.c Wed Oct 23 00:06:07 2019
@@ -1056,8 +1056,8 @@ Lisp_UserHomedirPathname(LispBuiltin *bu
*/
{
GC_ENTER();
-int length;
char *home = getenv("HOME"), data[PATH_MAX + 1];
+char sepstr[] = {PATH_SEP, '\0'};
LispObj *result;
LispObj *host;
@@ -1067,16 +1067,15 @@ Lisp_UserHomedirPathname(LispBuiltin *bu
if (host != UNSPEC && !STRINGP(host))
LispDestroy("%s: bad hostname %s", STRFUN(builtin), STROBJ(host));
-length = 0;
if (home) {
- length = strlen(home);
- strncpy(data, home, length);
- if (length && home[length - 1] != PATH_SEP)
- data[length++] = PATH_SEP;
+ strlcpy(data, home, sizeof(data));
+ if (data[0] != '\0' && data[strlen(data) - 1] != PATH_SEP)
+ strlcat(data, sepstr, sizeof(data));
+} else {
+ data[0] = '\0';
}
-data[length] = '\0';
-result = LSTRING(data, length);
+result = STRING(data);
GC_PROTECT(result);
result = APPLY1(Oparse_namestring, result);
GC_LEAVE();