All pastes #1286943 Raw Edit

Miscellany

public text v1 · immutable
#1286943 ·published 2008-12-16 17:19 UTC
rendered paste body
### Eclipse Workspace Patch 1.0
#P php53
Index: ext/imap/php_imap.c
===================================================================
RCS file: /repository/php-src/ext/imap/php_imap.c,v
retrieving revision 1.208.2.7.2.26.2.25
diff -u -r1.208.2.7.2.26.2.25 php_imap.c
--- ext/imap/php_imap.c	3 Dec 2008 16:52:04 -0000	1.208.2.7.2.26.2.25
+++ ext/imap/php_imap.c	16 Dec 2008 16:59:41 -0000
@@ -1575,6 +1575,11 @@
 		return;
 	}
 
+	if (flags && ((flags & ~(FT_UID|FT_PEEK|FT_INTERNAL)) !=0)) {
+		php_error_docref(NULL TSRMLS_CC, E_WARNING, "invalid value for the options parameter");
+		RETURN_FALSE;
+	}
+
 	ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap);
 
 	if ((argc == 3) && (flags & FT_UID)) {
@@ -2166,6 +2171,11 @@
 	if (zend_parse_parameters(argc TSRMLS_CC, "rl|l", &streamind, &msgno, &flags) == FAILURE) {
 		return;
 	}
+
+	if (flags && ((flags & ~FT_UID) !=0)) {
+		php_error_docref(NULL TSRMLS_CC, E_WARNING, "invalid value for the options parameter");
+		RETURN_FALSE;
+	}
 	
 	ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap);
 
@@ -2211,6 +2221,11 @@
 	if (zend_parse_parameters(argc TSRMLS_CC, "rls|l", &streamind, &msgno, &sec, &sec_len, &flags) == FAILURE) {
 		return;
 	}
+	
+	if (flags && ((flags & ~(FT_UID|FT_PEEK|FT_INTERNAL)) !=0)) {
+		php_error_docref(NULL TSRMLS_CC, E_WARNING, "invalid value for the options parameter");
+		RETURN_FALSE;
+	}
 
 	ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap);
 
@@ -2930,13 +2945,18 @@
 PHP_FUNCTION(imap_fetchheader)
 {
 	zval *streamind;
-	long msgno, flags;
+	long msgno, flags=0L;
 	pils *imap_le_struct;
 	int msgindex, argc = ZEND_NUM_ARGS();
 	
 	if (zend_parse_parameters(argc TSRMLS_CC, "rl|l", &streamind, &msgno, &flags) == FAILURE) {
 		return;
 	}
+
+	if (flags && ((flags & ~(FT_UID|FT_INTERNAL|FT_PREFETCHTEXT)) !=0)) {
+		php_error_docref(NULL TSRMLS_CC, E_WARNING, "invalid value for the options parameter");
+		RETURN_FALSE;
+	}
 	
 	ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap);