Hi

esc is always zero at that point, so no need to store zero in it.  Diff
with extra context.

Best,

Martin

--- a/usr.sbin/smtpd/expand.c
+++ b/usr.sbin/smtpd/expand.c
@@ -198,37 +198,36 @@ expand_line_split(char **line, char **ret)
        i = 0;
        for (s = *line; (*s) && (i < sizeof(buffer)); ++s) {
                if (esc) {
                        buffer[i++] = *s;
                        esc = 0;
                        continue;
                }
                if (*s == '\\') {
                        esc = 1;
                        continue;
                }
                if (*s == ',' && !dq && !sq) {
                        *ret = buffer;
                        *line = s+1;
                        return (1);
                }
 
                buffer[i++] = *s;
-               esc = 0;
 
                if (*s == '"' && !sq)
                        dq ^= 1;
                if (*s == '\'' && !dq)
                        sq ^= 1;
        }
 
        if (esc || dq || sq || i == sizeof(buffer))
                return (-1);
 
        *ret = buffer;
        *line = s;
        return (i ? 1 : 0);
 }
 
 int
 expand_line(struct expand *expand, const char *s, int do_includes)
 {

Reply via email to