diff --git a/cde/programs/dtfile/SharedProcs.c b/cde/programs/dtfile/SharedProcs.c index 63b7c1158..eadcc2f97 100644 --- a/cde/programs/dtfile/SharedProcs.c +++ b/cde/programs/dtfile/SharedProcs.c @@ -1631,6 +1631,7 @@ _DtPathFromInput( FILE *pfp; char command[MAXPATHLEN]; + memset(command, 0, sizeof(command)); sprintf(command,"echo %s",path); if((pfp=popen(command,"r")) != NULL) @@ -1654,9 +1655,13 @@ _DtPathFromInput( read_ok = 0; } - if (read_ok) + if (read_ok) { - command[MAXPATHLEN-1] = '\0'; + int slen = strlen(command); + /* need to remove the trailing newline safely*/ + if (slen >= 1) + command[slen-1] = '\0'; + XtFree(path); path = XtNewString(command); pclose(pfp);