Fossil SCM

Avoid overflow problems if users enter negative numbers for the "dw" and "dc" URI query parameters.

drh 2012-02-03 16:42 UTC retro-sbsdiff
Commit 30478e4e7e01b99e1d7baaf4f5b8dc529e5fef9e
1 file changed +2 -2
+2 -2
--- src/info.c
+++ src/info.c
@@ -353,16 +353,16 @@
353353
int x;
354354
diffFlags = DIFF_SIDEBYSIDE | DIFF_IGNORE_EOLWS;
355355
356356
/* "dw" query parameter determines width of each column */
357357
x = atoi(PD("dw","80"))*(DIFF_CONTEXT_MASK+1);
358
- if( x>DIFF_WIDTH_MASK ) x = DIFF_WIDTH_MASK;
358
+ if( x<0 || x>DIFF_WIDTH_MASK ) x = DIFF_WIDTH_MASK;
359359
diffFlags += x;
360360
361361
/* "dc" query parameter determines lines of context */
362362
x = atoi(PD("dc","7"));
363
- if( x>DIFF_CONTEXT_MASK ) x = DIFF_CONTEXT_MASK;
363
+ if( x<0 || x>DIFF_CONTEXT_MASK ) x = DIFF_CONTEXT_MASK;
364364
diffFlags += x;
365365
}else{
366366
/* In-line (non-side-by-side) diff */
367367
diffFlags = DIFF_INLINE | DIFF_IGNORE_EOLWS;
368368
}
369369
--- src/info.c
+++ src/info.c
@@ -353,16 +353,16 @@
353 int x;
354 diffFlags = DIFF_SIDEBYSIDE | DIFF_IGNORE_EOLWS;
355
356 /* "dw" query parameter determines width of each column */
357 x = atoi(PD("dw","80"))*(DIFF_CONTEXT_MASK+1);
358 if( x>DIFF_WIDTH_MASK ) x = DIFF_WIDTH_MASK;
359 diffFlags += x;
360
361 /* "dc" query parameter determines lines of context */
362 x = atoi(PD("dc","7"));
363 if( x>DIFF_CONTEXT_MASK ) x = DIFF_CONTEXT_MASK;
364 diffFlags += x;
365 }else{
366 /* In-line (non-side-by-side) diff */
367 diffFlags = DIFF_INLINE | DIFF_IGNORE_EOLWS;
368 }
369
--- src/info.c
+++ src/info.c
@@ -353,16 +353,16 @@
353 int x;
354 diffFlags = DIFF_SIDEBYSIDE | DIFF_IGNORE_EOLWS;
355
356 /* "dw" query parameter determines width of each column */
357 x = atoi(PD("dw","80"))*(DIFF_CONTEXT_MASK+1);
358 if( x<0 || x>DIFF_WIDTH_MASK ) x = DIFF_WIDTH_MASK;
359 diffFlags += x;
360
361 /* "dc" query parameter determines lines of context */
362 x = atoi(PD("dc","7"));
363 if( x<0 || x>DIFF_CONTEXT_MASK ) x = DIFF_CONTEXT_MASK;
364 diffFlags += x;
365 }else{
366 /* In-line (non-side-by-side) diff */
367 diffFlags = DIFF_INLINE | DIFF_IGNORE_EOLWS;
368 }
369

Keyboard Shortcuts

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