mbexamine and block size cache files
John Capo
jc at irbs.com
Wed Aug 20 18:25:36 EDT 2008
Quoting Wesley Craig (wes at umich.edu):
> On 20 Aug 2008, at 09:56, John Capo wrote:
> >That does work on FreeBSD 6.3.
>
> If many entreis are not NULL terminated, perhaps all of the string
> formats should be %.*s with a specified length, then. Are you
> willing to submit a tested patch?
Tested patch attached.
John Capo
Tuffmail.com
-------------- next part --------------
--- ../../cyrus-imapd-2.3.12/imap/mbexamine.c 2008-04-21 16:58:34.000000000 -0400
+++ mbexamine.c 2008-08-20 16:36:09.000000000 -0400
@@ -365,13 +365,13 @@
cacheitem = mailbox.cache_base + CACHE_OFFSET(i);
- printf(" Envel>{%d}%s\n", CACHE_ITEM_LEN(cacheitem),
+ printf(" Envel>{%d}%.*s\n", CACHE_ITEM_LEN(cacheitem), CACHE_ITEM_LEN(cacheitem),
cacheitem + CACHE_ITEM_SIZE_SKIP);
cacheitem = CACHE_ITEM_NEXT(cacheitem);
- printf("BdyStr>{%d}%s\n", CACHE_ITEM_LEN(cacheitem),
+ printf("BdyStr>{%d}%.*s\n", CACHE_ITEM_LEN(cacheitem), CACHE_ITEM_LEN(cacheitem),
cacheitem + CACHE_ITEM_SIZE_SKIP);
cacheitem = CACHE_ITEM_NEXT(cacheitem);
- printf(" Body>{%d}%s\n", CACHE_ITEM_LEN(cacheitem),
+ printf(" Body>{%d}%.*s\n", CACHE_ITEM_LEN(cacheitem), CACHE_ITEM_LEN(cacheitem),
cacheitem + CACHE_ITEM_SIZE_SKIP);
cacheitem = CACHE_ITEM_NEXT(cacheitem);
@@ -381,22 +381,22 @@
#endif
cacheitem = CACHE_ITEM_NEXT(cacheitem);
- printf("CacHdr>{%d}%s\n", CACHE_ITEM_LEN(cacheitem),
+ printf("CacHdr>{%d}%.*s\n", CACHE_ITEM_LEN(cacheitem), CACHE_ITEM_LEN(cacheitem),
cacheitem + CACHE_ITEM_SIZE_SKIP);
cacheitem = CACHE_ITEM_NEXT(cacheitem);
- printf(" From>{%d}%s\n", CACHE_ITEM_LEN(cacheitem),
+ printf(" From>{%d}%.*s\n", CACHE_ITEM_LEN(cacheitem), CACHE_ITEM_LEN(cacheitem),
cacheitem + CACHE_ITEM_SIZE_SKIP);
cacheitem = CACHE_ITEM_NEXT(cacheitem);
- printf(" To>{%d}%s\n", CACHE_ITEM_LEN(cacheitem),
+ printf(" To>{%d}%.*s\n", CACHE_ITEM_LEN(cacheitem), CACHE_ITEM_LEN(cacheitem),
cacheitem + CACHE_ITEM_SIZE_SKIP);
cacheitem = CACHE_ITEM_NEXT(cacheitem);
- printf(" Cc>{%d}%s\n", CACHE_ITEM_LEN(cacheitem),
+ printf(" Cc>{%d}%.*s\n", CACHE_ITEM_LEN(cacheitem), CACHE_ITEM_LEN(cacheitem),
cacheitem + CACHE_ITEM_SIZE_SKIP);
cacheitem = CACHE_ITEM_NEXT(cacheitem);
- printf(" Bcc>{%d}%s\n", CACHE_ITEM_LEN(cacheitem),
+ printf(" Bcc>{%d}%.*s\n", CACHE_ITEM_LEN(cacheitem), CACHE_ITEM_LEN(cacheitem),
cacheitem + CACHE_ITEM_SIZE_SKIP);
cacheitem = CACHE_ITEM_NEXT(cacheitem);
- printf("Subjct>{%d}%s\n", CACHE_ITEM_LEN(cacheitem),
+ printf("Subjct>{%d}%.*s\n", CACHE_ITEM_LEN(cacheitem), CACHE_ITEM_LEN(cacheitem),
cacheitem + CACHE_ITEM_SIZE_SKIP);
if(flag) break;
More information about the Cyrus-devel
mailing list