syslog:

May  9 20:48:45 yxa imapd[7371]: open: user jas opened INBOX.msec
May  9 20:48:45 yxa master[13500]: process 7371 exited, signaled to death by 11

imap protocol dump:

1209 SELECT "INBOX.msec"
* FLAGS (\Answered \Flagged \Draft \Deleted \Seen)
* OK [PERMANENTFLAGS (\Answered \Flagged \Draft \Deleted \Seen \*)]  
* 385 EXISTS
* 0 RECENT
* OK [UNSEEN 385]  
* OK [UIDVALIDITY 981853185]  
* OK [UIDNEXT 387]  
1209 OK [READ-WRITE] Completed
1210 UID SEARCH UNSEEN UNDELETED
1211 UID SEARCH SEEN

gdb:

(gdb) bt
#0  0x08075e1e in memconst (s=0x4160dffb "", len=16, v=0) at squat.c:80
#1  0x08076031 in squat_search_open (fd=15) at squat.c:133
#2  0x08075c12 in search_squat (msg_list=0x8122d20, mailbox=0x810c800, 
    searchargs=0x81223f8) at search_engines.c:257
#3  0x08075db5 in search_prefilter_messages (msg_list=0x8122d20, 
    mailbox=0x810c800, searchargs=0x81223f8) at search_engines.c:309
#4  0x0805d399 in _index_search (msgno_list=0xbfffe3a8, mailbox=0x810c800, 
    searchargs=0x81223f8) at index.c:1022
#5  0x0805d51f in index_search (mailbox=0x810c800, searchargs=0x81223f8, 
    usinguid=1) at index.c:1087
#6  0x08054c6c in cmd_search (tag=0x8120b28 "1227", usinguid=1) at imapd.c:3267
#7  0x08050bd2 in cmdloop () at imapd.c:1403
#8  0x0804e711 in service_main (argc=1, argv=0xbfffed74, envp=0xbfffed7c)
    at imapd.c:650
#9  0x0804c9f4 in main (argc=1, argv=0xbfffed74, envp=0xbfffed7c)
    at service.c:444
#10 0x40222647 in __libc_start_main (main=0x804c4c0 <main>, argc=1, 
    ubp_av=0xbfffed74, init=0x804b1dc <_init>, fini=0x8089140 <_fini>, 
    rtld_fini=0x4000dcd4 <_dl_fini>, stack_end=0xbfffed6c)
    at ../sysdeps/generic/libc-start.c:129
(gdb) 

patch:

Index: squat.c
===================================================================
RCS file: /cvs/src/cyrus/imap/squat.c,v
retrieving revision 1.2
diff -u -r1.2 squat.c
--- squat.c     2002/02/19 18:50:14     1.2
+++ squat.c     2002/05/09 18:54:21
@@ -74,7 +74,7 @@
 
 /* Returns true IFF the 'len' bytes starting at 's' are each equal to 'v' */
 static int memconst(char const* s, int len, char v) {
-  while (len > 0 && *s == v) {
+  while (len > 0 && *s == v && *s) {
     s++;
     len--;
   }

I'm not sure if the patch is the correct one given in the broader
context, possibly the return condition should be extended to return
non-0 if the end of s was reached as well.

Reply via email to