- SEARCHPGM struct has to be freed

This commit is contained in:
Pierre Joye 2009-04-25 15:02:03 +00:00
parent cdeee70a88
commit 8405f08d5f

View File

@ -3892,6 +3892,7 @@ PHP_FUNCTION(imap_search)
char *search_criteria;
MESSAGELIST *cur;
int argc = ZEND_NUM_ARGS();
SEARCHPGM *pgm = NIL;
if (zend_parse_parameters(argc TSRMLS_CC, "rs|ls", &streamind, &criteria, &criteria_len, &flags, &charset, &charset_len) == FAILURE) {
return;
@ -3902,7 +3903,14 @@ PHP_FUNCTION(imap_search)
search_criteria = estrndup(criteria, criteria_len);
IMAPG(imap_messages) = IMAPG(imap_messages_tail) = NIL;
mail_search_full(imap_le_struct->imap_stream, (argc == 4 ? charset : NIL), mail_criteria(search_criteria), flags);
pgm = mail_criteria(search_criteria);
mail_search_full(imap_le_struct->imap_stream, (argc == 4 ? charset : NIL), pgm, flags);
if (pgm) {
mail_free_searchpgm(&pgm);
}
if (IMAPG(imap_messages) == NIL) {
efree(search_criteria);
RETURN_FALSE;
@ -4508,6 +4516,7 @@ PHP_FUNCTION(imap_thread)
char criteria[] = "ALL";
THREADNODE *top;
int argc = ZEND_NUM_ARGS();
SEARCHPGM *pgm = NIL;
if (zend_parse_parameters(argc TSRMLS_CC, "r|l", &streamind, &flags) == FAILURE) {
return;
@ -4515,7 +4524,11 @@ PHP_FUNCTION(imap_thread)
ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap);
top = mail_thread(imap_le_struct->imap_stream, "REFERENCES", NIL, mail_criteria(criteria), flags);
pgm = mail_criteria(criteria);
top = mail_thread(imap_le_struct->imap_stream, "REFERENCES", NIL, pgm, flags);
if (pgm) {
mail_free_searchpgm(&pgm);
}
if(top == NIL) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Function returned an empty tree");