@@ -, +, @@ src/cmds/qsub.c | 11 +++++++++-- 1 files changed, 9 insertions(+), 2 deletions(-) --- a/src/cmds/qsub.c +++ a/src/cmds/qsub.c @@ -580,16 +580,23 @@ char **value; char *curr_ptr; char *equals; static char tmpLine[65536]; + char *s; /* we've reached the end */ if ((start == NULL) && (*tok_ptr == '\0')) return(0); + s = NULL; + /* XXX: may truncate input */ if (start != NULL) - strcpy(tmpLine, start); + { + strncpy(tmpLine, start, sizeof(tmpLine)); + tmpLine[sizeof(tmpLine) - 1] = '\0'; + s = tmpLine; + } - curr_ptr = smart_strtok(tmpLine,",",&tok_ptr,FALSE); + curr_ptr = smart_strtok(s,",",&tok_ptr,FALSE); if ((curr_ptr == NULL)) return(0);