Browse code

explode: big endian support

git-svn: trunk@3479

aCaB authored on 2008/01/02 22:19:44
Showing 2 changed files
... ...
@@ -1,3 +1,6 @@
1
+Wed Jan  2 13:46:24 CET 2008 (acab)
2
+  * libclamav/explode.c: big endian support
3
+
1 4
 Tue Jan  1 23:30:06 CET 2008 (acab)
2 5
 -----------------------------------
3 6
   * libclamav/unzip: add support for zip method 6 (implode) - bb#584
... ...
@@ -38,6 +38,7 @@
38 38
 #endif
39 39
 
40 40
 #include "explode.h"
41
+#include "others.h"
41 42
 
42 43
 /* NOTE: sorting algo must be stable! */
43 44
 static void bs(uint8_t *k, uint8_t *v, unsigned int elements) {
... ...
@@ -151,7 +152,7 @@ int explode_init(struct xplstate *X, uint8_t flags) {
151 151
   } else {					\
152 152
     if(!X->avail_in) return EXPLODE_EBUFF;	\
153 153
     if(X->avail_in>=4) {			\
154
-      X->bitmap=*(uint32_t *)X->next_in;	\
154
+      X->bitmap=cli_readint32(X->next_in);	\
155 155
       X->bits=31;				\
156 156
       X->next_in+=4;				\
157 157
       X->avail_in-=4;				\
... ...
@@ -175,7 +176,7 @@ int explode_init(struct xplstate *X, uint8_t flags) {
175 175
     if(X->avail_in*8+X->bits<(NUM)) return EXPLODE_EBUFF;	\
176 176
     val=X->bitmap;						\
177 177
     if(X->avail_in>=4) {					\
178
-      X->bitmap=*(uint32_t *)X->next_in;			\
178
+      X->bitmap=cli_readint32(X->next_in);			\
179 179
       X->next_in+=4;						\
180 180
       X->avail_in-=4;						\
181 181
       val|=(X->bitmap&((1<<((NUM)-X->bits))-1))<<X->bits;	\
... ...
@@ -262,7 +263,7 @@ int explode(struct xplstate *X) {
262 262
 	X->next_out++;
263 263
       } else {
264 264
 	SETCASE(EXPLODE_BASEDIST);
265
-	GETBITS(6+X->largewin);
265
+	GETBITS(6u+X->largewin);
266 266
 	X->backbytes=val;
267 267
 	X->backsize=0;
268 268
 	X->state=EXPLODE_DECODEDISTS;