]> granicus.if.org Git - php/commitdiff
bug #46837 fix
authorZoe Slattery <zoe@php.net>
Tue, 16 Dec 2008 21:34:16 +0000 (21:34 +0000)
committerZoe Slattery <zoe@php.net>
Tue, 16 Dec 2008 21:34:16 +0000 (21:34 +0000)
ext/imap/php_imap.c

index d1a9b0baa4f4e99ca035f302684c1cf0810c710e..23036c0760fdc55643839adfcaed9c0da158b1dc 100644 (file)
@@ -1483,6 +1483,13 @@ PHP_FUNCTION(imap_close)
 
        if (argc == 2) {
                flags = options;
+
+                /* Check that flags is exactly equal to PHP_EXPUNGE or zero */
+                if (flags && ((flags & ~PHP_EXPUNGE) != 0)) {
+                        php_error_docref(NULL TSRMLS_CC, E_WARNING, "invalid value for the flags parameter");
+                         RETURN_FALSE;
+                }
+
                /* Do the translation from PHP's internal PHP_EXPUNGE define to c-client's CL_EXPUNGE */
                if (flags & PHP_EXPUNGE) {
                        flags ^= PHP_EXPUNGE;