kalowsky                Mon Sep  9 16:59:17 2002 EDT

  Modified files:              (Branch: PHP_4_2_0)
    /php4/ext/imap      php_imap.c 
  Log:
  Now this is correct for bug #15630
  
  
Index: php4/ext/imap/php_imap.c
diff -u php4/ext/imap/php_imap.c:1.112.2.6 php4/ext/imap/php_imap.c:1.112.2.7
--- php4/ext/imap/php_imap.c:1.112.2.6  Mon Sep  9 16:54:01 2002
+++ php4/ext/imap/php_imap.c    Mon Sep  9 16:59:17 2002
@@ -25,7 +25,7 @@
    | PHP 4.0 updates:  Zeev Suraski <[EMAIL PROTECTED]>                       |
    +----------------------------------------------------------------------+
  */
-/* $Id: php_imap.c,v 1.112.2.6 2002/09/09 20:54:01 kalowsky Exp $ */
+/* $Id: php_imap.c,v 1.112.2.7 2002/09/09 20:59:17 kalowsky Exp $ */
 
 #define IMAP41
 
@@ -2200,7 +2200,7 @@
        /* author: Andrew Skalski <[EMAIL PROTECTED]> */
        zval **arg;
        const unsigned char *in, *inp, *endp;
-       unsigned char *out, *outp;
+       unsigned char *out, *outp, c;
        int inlen, outlen;
        enum {
                ST_NORMAL,      /* printable text */
@@ -2302,13 +2302,15 @@
                                break;
                        case ST_DECODE1:
                                outp[1] = UNB64(*inp);
-                               *outp++ |= outp[1] >> 4;
+                               c = outp[1] >> 4;
+                               *outp++ |= c;
                                *outp <<= 4;
                                state = ST_DECODE2;
                                break;
                        case ST_DECODE2:
                                outp[1] = UNB64(*inp);
-                               *outp++ |= outp[1] >> 2;
+                               c = outpp[1] >> 2;
+                               *outp++ |= c;
                                *outp <<= 6;
                                state = ST_DECODE3;
                                break;
@@ -2341,7 +2343,7 @@
        /* author: Andrew Skalski <[EMAIL PROTECTED]> */
        zval **arg;
        const unsigned char *in, *inp, *endp;
-       unsigned char *out, *outp;
+       unsigned char *out, *outp, c;
        int inlen, outlen;
        enum {
                ST_NORMAL,      /* printable text */
@@ -2412,7 +2414,8 @@
                } else if (inp == endp || !SPECIAL(*inp)) {
                        /* flush overflow and terminate region */
                        if (state != ST_ENCODE0) {
-                               *outp++ = B64(*outp);
+                               c = B64(*outp);
+                               *outp++ = c;
                        }
                        *outp++ = '-';
                        state = ST_NORMAL;
@@ -2425,12 +2428,14 @@
                                        state = ST_ENCODE1;
                                        break;
                                case ST_ENCODE1:
-                                       *outp++ = B64(*outp | *inp >> 4);
+                                       c = B64(*outp | *inp >> 4);
+                                       *outp++ = c;
                                        *outp = *inp++ << 2;
                                        state = ST_ENCODE2;
                                        break;
                                case ST_ENCODE2:
-                                       *outp++ = B64(*outp | *inp >> 6);
+                                       c = B64(*outp | *inp >> 6);
+                                       *outp++ = c;
                                        *outp++ = B64(*inp++);
                                        state = ST_ENCODE0;
                                case ST_NORMAL:



-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to