summaryrefslogtreecommitdiff
path: root/ext/imap/php_imap.c
diff options
context:
space:
mode:
authorZoe Slattery <zoe@php.net>2008-12-16 21:10:16 +0000
committerZoe Slattery <zoe@php.net>2008-12-16 21:10:16 +0000
commit92d3eb31b71a746fad5e49b50071d6e5d46ea3e2 (patch)
tree51263f6d8488e470471ebdeb4232b1d8c1d2b0e6 /ext/imap/php_imap.c
parent5fa06bbe64dd572130bfedd21f0202cf75c15e5a (diff)
downloadphp-git-92d3eb31b71a746fad5e49b50071d6e5d46ea3e2.tar.gz
bug #46884 fix
Diffstat (limited to 'ext/imap/php_imap.c')
-rw-r--r--ext/imap/php_imap.c22
1 files changed, 21 insertions, 1 deletions
diff --git a/ext/imap/php_imap.c b/ext/imap/php_imap.c
index 1c3347fb2f..fd89734e45 100644
--- a/ext/imap/php_imap.c
+++ b/ext/imap/php_imap.c
@@ -1575,6 +1575,11 @@ PHP_FUNCTION(imap_body)
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 @@ PHP_FUNCTION(imap_fetchstructure)
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 @@ PHP_FUNCTION(imap_fetchbody)
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_sort)
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);