Fossil SCM
Update deltafunc.c's deltaGetInt() to match the copy from delta.c (applied in [60c7b5f423] and in sqlite's counterpart copy). Reported by Dan Mestas.
Commit
21d8fadb3084fb1e8229f64dc95a81323d2f782e6434b173e766853a01ac8eaa
Parent
c272f25079a5dbd…
1 file changed
+15
-5
+15
-5
| --- src/deltafunc.c | ||
| +++ src/deltafunc.c | ||
| @@ -201,20 +201,30 @@ | ||
| 201 | 201 | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, -1, -1, |
| 202 | 202 | -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, |
| 203 | 203 | 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, -1, -1, -1, 36, |
| 204 | 204 | -1, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, |
| 205 | 205 | 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, -1, 63, -1, |
| 206 | + | |
| 207 | + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, | |
| 208 | + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, | |
| 209 | + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, | |
| 210 | + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, | |
| 211 | + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, | |
| 212 | + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, | |
| 213 | + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, | |
| 214 | + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, | |
| 206 | 215 | }; |
| 207 | 216 | unsigned int v = 0; |
| 208 | 217 | int c; |
| 209 | 218 | unsigned char *z = (unsigned char*)*pz; |
| 210 | - unsigned char *zStart = z; | |
| 211 | - while( (c = zValue[0x7f&*(z++)])>=0 ){ | |
| 212 | - v = (v<<6) + c; | |
| 219 | + unsigned char *zEnd = z + (*pLen); | |
| 220 | + while( z<zEnd && (c = zValue[*z])>=0 ){ | |
| 221 | + v = (v<<6) + c; | |
| 222 | + z++; | |
| 213 | 223 | } |
| 214 | - z--; | |
| 215 | - *pLen -= z - zStart; | |
| 224 | + | |
| 225 | + *pLen -= (int)(z - (unsigned char*)*pz); | |
| 216 | 226 | *pz = (char*)z; |
| 217 | 227 | return v; |
| 218 | 228 | } |
| 219 | 229 | |
| 220 | 230 | /* |
| 221 | 231 |
| --- src/deltafunc.c | |
| +++ src/deltafunc.c | |
| @@ -201,20 +201,30 @@ | |
| 201 | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, -1, -1, |
| 202 | -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, |
| 203 | 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, -1, -1, -1, 36, |
| 204 | -1, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, |
| 205 | 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, -1, 63, -1, |
| 206 | }; |
| 207 | unsigned int v = 0; |
| 208 | int c; |
| 209 | unsigned char *z = (unsigned char*)*pz; |
| 210 | unsigned char *zStart = z; |
| 211 | while( (c = zValue[0x7f&*(z++)])>=0 ){ |
| 212 | v = (v<<6) + c; |
| 213 | } |
| 214 | z--; |
| 215 | *pLen -= z - zStart; |
| 216 | *pz = (char*)z; |
| 217 | return v; |
| 218 | } |
| 219 | |
| 220 | /* |
| 221 |
| --- src/deltafunc.c | |
| +++ src/deltafunc.c | |
| @@ -201,20 +201,30 @@ | |
| 201 | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, -1, -1, |
| 202 | -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, |
| 203 | 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, -1, -1, -1, 36, |
| 204 | -1, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, |
| 205 | 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, -1, 63, -1, |
| 206 | |
| 207 | -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| 208 | -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| 209 | -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| 210 | -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| 211 | -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| 212 | -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| 213 | -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| 214 | -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| 215 | }; |
| 216 | unsigned int v = 0; |
| 217 | int c; |
| 218 | unsigned char *z = (unsigned char*)*pz; |
| 219 | unsigned char *zEnd = z + (*pLen); |
| 220 | while( z<zEnd && (c = zValue[*z])>=0 ){ |
| 221 | v = (v<<6) + c; |
| 222 | z++; |
| 223 | } |
| 224 | |
| 225 | *pLen -= (int)(z - (unsigned char*)*pz); |
| 226 | *pz = (char*)z; |
| 227 | return v; |
| 228 | } |
| 229 | |
| 230 | /* |
| 231 |