wok-6.x diff linux/stuff/linux-lzma-export.u @ rev 1088
slitaz-configs: typo in receipt
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Wed Jul 16 18:42:57 2008 +0200 (2008-07-16) |
parents | 28bd53ce3a11 |
children |
line diff
1.1 --- a/linux/stuff/linux-lzma-export.u Sun Mar 02 23:16:29 2008 +0000 1.2 +++ b/linux/stuff/linux-lzma-export.u Wed Jul 16 18:42:57 2008 +0200 1.3 @@ -1,6 +1,6 @@ 1.4 --- linux-2.6.24.2/lib/decompress_unlzma.c 1.5 +++ linux-2.6.24.2/lib/decompress_unlzma.c 1.6 -@@ -52,11 +52,6 @@ static void __init large_free(void *wher 1.7 +@@ -52,16 +52,6 @@ 1.8 } 1.9 1.10 #ifndef TEST 1.11 @@ -9,19 +9,29 @@ 1.12 - return kmalloc(size, GFP_KERNEL); 1.13 -} 1.14 - 1.15 - static void __init free(void *where) 1.16 +-static void __init free(void *where) 1.17 +-{ 1.18 +- kfree(where); 1.19 +-} 1.20 +- 1.21 + static void __init error(char *x) 1.22 { 1.23 - kfree(where); 1.24 -@@ -321,7 +316,7 @@ typedef struct { 1.25 - #define LZMA_LITERAL (LZMA_REP_LEN_CODER + LZMA_NUM_LEN_PROBS) 1.26 + printk(KERN_ERR "%s\n", x); 1.27 +@@ -166,13 +156,6 @@ 1.28 + } 1.29 + } 1.30 1.31 - 1.32 --STATIC int unlzma(char *inbuf, int in_len, 1.33 -+int unlzma(char *inbuf, int in_len, 1.34 - int(*fill)(void*,unsigned int), 1.35 - int(*writebb)(char*,unsigned int), 1.36 - int *posp) 1.37 -@@ -348,10 +343,21 @@ STATIC int unlzma(char *inbuf, int in_le 1.38 +- 1.39 +-/* Called once. TODO: bb_maybe_free() */ 1.40 +-static always_inline void rc_free(rc_t * rc) 1.41 +-{ 1.42 +- free(rc->buffer); 1.43 +-} 1.44 +- 1.45 + /* Called twice, but one callsite is in speed_inline'd rc_is_bit_0_helper() */ 1.46 + static void rc_do_normalize(rc_t * rc) 1.47 + { 1.48 +@@ -348,10 +331,22 @@ 1.49 1.50 rc_init(&rc, fill, inbuf, in_len); 1.51 1.52 @@ -30,14 +40,15 @@ 1.53 - rc_read(&rc); 1.54 - ((unsigned char *)&header)[i] = *rc.ptr++; 1.55 + header.dict_size = header.dst_size = in_len; 1.56 -+ if (inbuf && inbuf[0] == 0) { 1.57 ++ if (inbuf && in_len > 0 && inbuf[0] == 0) { 1.58 + const int LZMA_LC = 3, LZMA_LP = 0, LZMA_PB = 2; 1.59 + header.pos = (LZMA_PB * 45) + (LZMA_LP * 5) + LZMA_LC; 1.60 + rc.ptr++; 1.61 + } 1.62 + else { 1.63 + int hdrsize = sizeof(header); 1.64 -+ if (inbuf && (1 + * (unsigned long *) &inbuf[9]) > 1U) 1.65 ++ if (inbuf && in_len > 12 && 1.66 ++ (1 + * (unsigned long *) &inbuf[9]) > 1U) 1.67 + hdrsize = 5; 1.68 + for (i = 0; i < hdrsize; i++) { 1.69 + if (rc.ptr >= rc.buffer_end)