]> git.mikk.net Git - smtpsink/commitdiff
Correctly compute length of commands terminated by bare newlines.
authorchris mikkelson <chris@mikk.net>
Wed, 31 Mar 2010 20:08:30 +0000 (15:08 -0500)
committerchris mikkelson <chris@mikk.net>
Wed, 31 Mar 2010 20:08:30 +0000 (15:08 -0500)
smtp.c

diff --git a/smtp.c b/smtp.c
index 406370be2bed1d201256fc68f730b495146f8f3e..c730052930459d8b79f9f9670b4f456d5e6a5058 100644 (file)
--- a/smtp.c
+++ b/smtp.c
@@ -255,7 +255,7 @@ do_smtp(struct conn  *c, char **buf, int *len)
        } else {
                char *t = strnstr(*buf, "\r\n", *len);
                char *cmd = *buf;
-               int clen = t - *buf;
+               int clen;
 
                if (t) {
                        t += 2;
@@ -265,7 +265,8 @@ do_smtp(struct conn  *c, char **buf, int *len)
                        if (!t) return 0;
                        t ++;
                }
-               *len -= t - *buf;
+               clen = t - *buf;
+               *len -= clen;
                *buf = t;
                
                return do_command(c, cmd, clen);