summaryrefslogtreecommitdiff
path: root/clientloop.c
diff options
context:
space:
mode:
Diffstat (limited to 'clientloop.c')
-rw-r--r--clientloop.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/clientloop.c b/clientloop.c
index ee36cc9e5..a030cf6e4 100644
--- a/clientloop.c
+++ b/clientloop.c
@@ -59,7 +59,7 @@
59 */ 59 */
60 60
61#include "includes.h" 61#include "includes.h"
62RCSID("$OpenBSD: clientloop.c,v 1.138 2005/06/16 03:38:36 djm Exp $"); 62RCSID("$OpenBSD: clientloop.c,v 1.139 2005/06/17 02:44:32 djm Exp $");
63 63
64#include "ssh.h" 64#include "ssh.h"
65#include "ssh1.h" 65#include "ssh1.h"
@@ -659,12 +659,12 @@ client_process_control(fd_set * readset)
659{ 659{
660 Buffer m; 660 Buffer m;
661 Channel *c; 661 Channel *c;
662 int client_fd, new_fd[3], ver, i, allowed; 662 int client_fd, new_fd[3], ver, allowed;
663 socklen_t addrlen; 663 socklen_t addrlen;
664 struct sockaddr_storage addr; 664 struct sockaddr_storage addr;
665 struct confirm_ctx *cctx; 665 struct confirm_ctx *cctx;
666 char *cmd; 666 char *cmd;
667 u_int len, env_len, command, flags; 667 u_int i, len, env_len, command, flags;
668 uid_t euid; 668 uid_t euid;
669 gid_t egid; 669 gid_t egid;
670 670
@@ -971,7 +971,10 @@ process_escapes(Buffer *bin, Buffer *bout, Buffer *berr, char *buf, int len)
971 u_char ch; 971 u_char ch;
972 char *s; 972 char *s;
973 973
974 for (i = 0; i < len; i++) { 974 if (len <= 0)
975 return (0);
976
977 for (i = 0; i < (u_int)len; i++) {
975 /* Get one character at a time. */ 978 /* Get one character at a time. */
976 ch = buf[i]; 979 ch = buf[i];
977 980