diff options
author | Sadrul Habib Chowdhury <sadrul@users.sourceforge.net> | 2010-03-20 20:52:50 -0400 |
---|---|---|
committer | Sadrul Habib Chowdhury <sadrul@users.sourceforge.net> | 2010-03-20 20:52:50 -0400 |
commit | f7adfae856bb83107024559bf3b167bc4b9a42df (patch) | |
tree | 901149d27bc7d7409d49a36b79c2dc6c4f6fc506 | |
parent | 0d0a3e392a02f002043737fb4d21650fcf665e32 (diff) | |
download | screen-f7adfae856bb83107024559bf3b167bc4b9a42df.tar.gz |
Fix a regression in parsing -X commands.
Details discussed in #25813.
-rw-r--r-- | src/socket.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/socket.c b/src/socket.c index 9dbf461..619aebb 100644 --- a/src/socket.c +++ b/src/socket.c @@ -1645,9 +1645,17 @@ struct msg *mp; for (fc = fullcmd; n > 0; n--) { int len = strlen(p); + /* Make sure there's enough room */ + if (fc + len + 3 > fullcmd + sizeof(fullcmd) - 1) + { + queryflag = -1; + return; + } + *fc++ = '"'; strncpy(fc, p, fullcmd + sizeof(fullcmd) - fc - 1); p += len + 1; fc += len; + *fc++ = '"'; *fc++ = ' '; } if (fc != fullcmd) |