Browse Source

Add compatibility with Dovecot's bigint UIDs

pdontthink 16 years ago
parent
commit
cb8c1c05f4

+ 1 - 0
ChangeLog

@@ -269,6 +269,7 @@ Version 1.5.2 - SVN
   - Add password type option widget
   - Make all submit button names unique on compose screen
   - Make address book file permissions 0600 - same as preference files
+  - Added compatibility with Dovecot's bigint UIDs
 
 Version 1.5.1 (branched on 2006-02-12)
 --------------------------------------

+ 4 - 1
functions/imap_messages.php

@@ -895,7 +895,10 @@ function sqimap_parse_address($read, &$i) {
  */
 function sqimap_get_message($imap_stream, $id, $mailbox, $hide=0) {
     // typecast to int to prohibit 1:* msgs sets
-    $id = (int) $id;
+    // Update: $id should always be sanitized into a BIGINT so this
+    // is being removed; leaving this code here in case something goes
+    // wrong, however
+    //$id = (int) $id;
     $flags = array();
     $read = sqimap_run_command($imap_stream, "FETCH $id (FLAGS BODYSTRUCTURE)", true, $response, $message, TRUE);
     if ($read) {

+ 5 - 0
functions/mailbox_display.php

@@ -1334,6 +1334,11 @@ function handleMessageListForm($imapConnection, &$aMailbox, $sButton='',
     /* retrieve the check boxes */
     $aUid = (isset($msg) && is_array($msg)) ? array_values($msg) : $aUid;
     if (count($aUid) && $sButton != 'expunge') {
+
+        // make sure message UIDs are sanitized (BIGINT)
+        foreach ($aUid as $i => $uid)
+           $aUid[$i] = (preg_match('/^[0-9]+$/', $uid) ? $uid : '0');
+
         $aUpdatedMsgs = false;
         $bExpunge = false;
         switch ($sButton) {

+ 1 - 1
plugins/message_details/message_details_bottom.php

@@ -33,7 +33,7 @@ global $msgd_8bit_in_hex;
 $msgd_8bit_in_hex=false;
 
 if (!empty($md_action)) {
-    sqgetGlobalVar('passed_id', $passed_id, SQ_GET);
+    sqgetGlobalVar('passed_id', $passed_id, SQ_GET, NULL, SQ_TYPE_BIGINT);
     if (!sqgetGlobalVar('passed_ent_id', $passed_ent_id, SQ_GET))
         $passed_ent_id = 0;
     sqgetGlobalVar('mailbox', $mailbox, SQ_GET);

+ 1 - 1
plugins/message_details/message_details_main.php

@@ -22,7 +22,7 @@ require('../../include/init.php');
 displayHtmlHeader( _("Message Details"), '', FALSE );
 
 sqgetGlobalVar('mailbox', $mailbox, SQ_GET);
-sqgetGlobalVar('passed_id', $passed_id, SQ_GET);
+sqgetGlobalVar('passed_id', $passed_id, SQ_GET, NULL, SQ_TYPE_BIGINT);
 if (!sqgetGlobalVar('passed_ent_id', $passed_ent_id, SQ_GET))
     $passed_ent_id = 0;
 

+ 1 - 1
plugins/message_details/message_details_top.php

@@ -30,7 +30,7 @@ displayHtmlHeader( _("Message Details"),
              "-->\n".
              "</script>\n", FALSE );
 
-sqgetGlobalVar('passed_id', $passed_id, SQ_GET);
+sqgetGlobalVar('passed_id', $passed_id, SQ_GET, NULL, SQ_TYPE_BIGINT);
 if (!sqgetGlobalVar('passed_ent_id', $passed_ent_id, SQ_GET))
     $passed_ent_id = 0;
 sqgetGlobalVar('mailbox', $mailbox, SQ_GET);

+ 1 - 1
plugins/spamcop/functions.php

@@ -66,7 +66,7 @@ function spamcop_show_link_function(&$links) {
         return;
 
     /* GLOBALS */
-    sqgetGlobalVar('passed_id',    $passed_id,    SQ_FORM);
+    sqgetGlobalVar('passed_id',    $passed_id,    SQ_FORM, NULL, SQ_TYPE_BIGINT);
     sqgetGlobalVar('passed_ent_id',$passed_ent_id,SQ_FORM);
     sqgetGlobalVar('mailbox',      $mailbox,      SQ_FORM);
     if ( sqgetGlobalVar('startMessage', $startMessage, SQ_FORM) ) {

+ 1 - 1
plugins/spamcop/spamcop.php

@@ -28,7 +28,7 @@ include_once(SM_PATH . 'functions/compose.php');
 /* GLOBALS */
 
 sqgetGlobalVar('mailbox', $mailbox, SQ_GET);
-sqgetGlobalVar('passed_id', $passed_id, SQ_GET);
+sqgetGlobalVar('passed_id', $passed_id, SQ_GET, NULL, SQ_TYPE_BIGINT);
 sqgetGlobalVar('js_web', $js_web, SQ_GET);
 
 if (! sqgetGlobalVar('startMessage', $startMessage, SQ_GET) ) {

+ 1 - 1
src/compose.php

@@ -85,7 +85,7 @@ sqgetGlobalVar('request_mdn',$request_mdn, $SQ_GLOBAL);
 sqgetGlobalVar('request_dr',$request_dr, $SQ_GLOBAL);
 sqgetGlobalVar('html_addr_search',$html_addr_search, $SQ_GLOBAL);
 sqgetGlobalVar('mail_sent',$mail_sent, $SQ_GLOBAL);
-sqgetGlobalVar('passed_id',$passed_id, $SQ_GLOBAL);
+sqgetGlobalVar('passed_id',$passed_id, $SQ_GLOBAL, NULL, SQ_TYPE_BIGINT);
 sqgetGlobalVar('passed_ent_id',$passed_ent_id, $SQ_GLOBAL);
 
 sqgetGlobalVar('attach',$attach, SQ_POST);

+ 1 - 3
src/download.php

@@ -48,9 +48,7 @@ sqgetGlobalVar('mailbox',    $mailbox,      SQ_GET);
 sqgetGlobalVar('ent_id',     $ent_id,       SQ_GET);
 sqgetGlobalVar('absolute_dl',$absolute_dl,  SQ_GET);
 sqgetGlobalVar('force_crlf', $force_crlf,   SQ_GET);
-if ( sqgetGlobalVar('passed_id', $temp, SQ_GET) ) {
-    $passed_id = (int) $temp;
-}
+sqgetGlobalVar('passed_id', $passed_id, SQ_GET, NULL, SQ_TYPE_BIGINT);
 if (!sqgetGlobalVar('account', $account, SQ_GET) ) {
     $account = 0;
 }

+ 1 - 3
src/image.php

@@ -22,9 +22,7 @@ require('../include/init.php');
 displayPageHeader($color);
 
 /* globals */
-if ( sqgetGlobalVar('passed_id', $temp, SQ_GET) ) {
-  $passed_id = (int) $temp;
-}
+sqgetGlobalVar('passed_id', $passed_id, SQ_GET, NULL, SQ_TYPE_BIGINT);
 sqgetGlobalVar('mailbox',       $mailbox,       SQ_GET);
 sqgetGlobalVar('ent_id',        $ent_id,        SQ_GET);
 sqgetGlobalVar('QUERY_STRING',  $QUERY_STRING,  SQ_SERVER);

+ 1 - 3
src/read_body.php

@@ -781,12 +781,10 @@ if ( sqgetGlobalVar('account', $temp,  SQ_GET) ) {
 }
 
 /** GET/POST VARS */
+sqgetGlobalVar('passed_id',     $passed_id, SQ_INORDER, NULL, SQ_TYPE_BIGINT);
 sqgetGlobalVar('passed_ent_id', $passed_ent_id);
 sqgetGlobalVar('mailbox',       $mailbox);
 
-if ( sqgetGlobalVar('passed_id', $temp) ) {
-    $passed_id = (int) $temp;
-}
 if ( sqgetGlobalVar('sort', $temp) ) {
     $sort = (int) $temp;
 }

+ 1 - 1
src/vcard.php

@@ -35,7 +35,7 @@ include_once(SM_PATH . 'functions/imap_messages.php');
 
 /* globals */
 
-sqgetGlobalVar('passed_id', $passed_id, SQ_GET);
+sqgetGlobalVar('passed_id', $passed_id, SQ_GET, NULL, SQ_TYPE_BIGINT);
 sqgetGlobalVar('mailbox', $mailbox, SQ_GET);
 sqgetGlobalVar('ent_id', $ent_id, SQ_GET);
 sqgetGlobalVar('startMessage', $startMessage, SQ_GET);

+ 1 - 3
src/view_header.php

@@ -83,9 +83,7 @@ function parse_viewheader($imapConnection,$id, $passed_ent_id) {
 }
 
 /* get global vars */
-if ( sqgetGlobalVar('passed_id', $temp, SQ_GET) ) {
-  $passed_id = (int) $temp;
-}
+sqgetGlobalVar('passed_id', $passed_id, SQ_GET, NULL, SQ_TYPE_BIGINT);
 if ( sqgetGlobalVar('mailbox', $temp, SQ_GET) ) {
   $mailbox = $temp;
 }

+ 1 - 3
src/view_html.php

@@ -34,9 +34,7 @@ sqgetGlobalVar('messages',   $messages,     SQ_SESSION);
 sqgetGlobalVar('mailbox',    $mailbox,      SQ_GET);
 sqgetGlobalVar('ent_id',     $ent_id,       SQ_GET);
 sqgetGlobalVar('passed_ent_id', $passed_ent_id, SQ_GET);
-if (sqgetGlobalVar('passed_id', $temp, SQ_GET)) {
-    $passed_id = (int) $temp;
-}
+sqgetGlobalVar('passed_id', $passed_id, SQ_GET, NULL, SQ_TYPE_BIGINT);
 
 // TODO: add required var checks here.
 

+ 1 - 3
src/view_text.php

@@ -27,9 +27,7 @@ sqgetGlobalVar('mailbox',    $mailbox,      SQ_GET);
 sqgetGlobalVar('ent_id',     $ent_id,       SQ_GET);
 sqgetGlobalVar('passed_ent_id', $passed_ent_id, SQ_GET);
 sqgetGlobalVar('QUERY_STRING', $QUERY_STRING, SQ_SERVER);
-if (sqgetGlobalVar('passed_id', $temp, SQ_GET)) {
-    $passed_id = (int) $temp;
-}
+sqgetGlobalVar('passed_id', $passed_id, SQ_GET, NULL, SQ_TYPE_BIGINT);
 
 $imapConnection = sqimap_login($username, false, $imapServerAddress, $imapPort, 0);
 $mbx_response = sqimap_mailbox_select($imapConnection, $mailbox);