summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSadrul Habib Chowdhury <sadrul@users.sourceforge.net>2010-03-20 20:52:50 -0400
committerSadrul Habib Chowdhury <sadrul@users.sourceforge.net>2010-03-20 20:52:50 -0400
commitf7adfae856bb83107024559bf3b167bc4b9a42df (patch)
tree901149d27bc7d7409d49a36b79c2dc6c4f6fc506
parent0d0a3e392a02f002043737fb4d21650fcf665e32 (diff)
downloadscreen-f7adfae856bb83107024559bf3b167bc4b9a42df.tar.gz
Fix a regression in parsing -X commands.
Details discussed in #25813.
-rw-r--r--src/socket.c8
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)