Fossil SCM

Fix an off-by-one error in the binary search for file suffixes when trying to guess the mimetype of a file. Ticket [da461aefee1351]

drh 2013-05-01 16:02 trunk
Commit 96b09d89a1525bb3cc81db9f787c91cc832b917d
1 file changed +1 -1
+1 -1
--- src/doc.c
+++ src/doc.c
@@ -315,11 +315,11 @@
315315
len = strlen(z);
316316
if( len<sizeof(zSuffix)-1 ){
317317
sqlite3_snprintf(sizeof(zSuffix), zSuffix, "%s", z);
318318
for(i=0; zSuffix[i]; i++) zSuffix[i] = fossil_tolower(zSuffix[i]);
319319
first = 0;
320
- last = sizeof(aMime)/sizeof(aMime[0]);
320
+ last = sizeof(aMime)/sizeof(aMime[0]) - 1;
321321
while( first<=last ){
322322
int c;
323323
i = (first+last)/2;
324324
c = fossil_strcmp(zSuffix, aMime[i].zSuffix);
325325
if( c==0 ) return aMime[i].zMimetype;
326326
--- src/doc.c
+++ src/doc.c
@@ -315,11 +315,11 @@
315 len = strlen(z);
316 if( len<sizeof(zSuffix)-1 ){
317 sqlite3_snprintf(sizeof(zSuffix), zSuffix, "%s", z);
318 for(i=0; zSuffix[i]; i++) zSuffix[i] = fossil_tolower(zSuffix[i]);
319 first = 0;
320 last = sizeof(aMime)/sizeof(aMime[0]);
321 while( first<=last ){
322 int c;
323 i = (first+last)/2;
324 c = fossil_strcmp(zSuffix, aMime[i].zSuffix);
325 if( c==0 ) return aMime[i].zMimetype;
326
--- src/doc.c
+++ src/doc.c
@@ -315,11 +315,11 @@
315 len = strlen(z);
316 if( len<sizeof(zSuffix)-1 ){
317 sqlite3_snprintf(sizeof(zSuffix), zSuffix, "%s", z);
318 for(i=0; zSuffix[i]; i++) zSuffix[i] = fossil_tolower(zSuffix[i]);
319 first = 0;
320 last = sizeof(aMime)/sizeof(aMime[0]) - 1;
321 while( first<=last ){
322 int c;
323 i = (first+last)/2;
324 c = fossil_strcmp(zSuffix, aMime[i].zSuffix);
325 if( c==0 ) return aMime[i].zMimetype;
326

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button