Fix endianess problems as discovered on the build farm
[sfrench/samba-autobuild/.git] / lib / compression / lzxpress.c
index 0396c9ddcb2df3a3a250a464ef05ce43c64e9791..a4ded7e45554d31ec991cac30d7c1493f02ef37a 100644 (file)
@@ -34,6 +34,7 @@
 
 #include "replace.h"
 #include "lzxpress.h"
+#include "../lib/util/byteorder.h"
 
 
 #define __BUF_POS_CONST(buf,ofs)(((const uint8_t *)buf)+(ofs))
@@ -130,11 +131,11 @@ ssize_t lzxpress_compress(const uint8_t *uncompressed,
                        if (best_len < 10) {
                                /* Classical meta-data */
                                metadata = (uint16_t)(((best_offset - 1) << 3) | (best_len - 3));
-                               dest[metadata_size / sizeof(uint16_t)] = metadata;
+                               SSVAL(dest, metadata_size / sizeof(uint16_t), metadata);
                                metadata_size += sizeof(uint16_t);
                        } else {
                                metadata = (uint16_t)(((best_offset - 1) << 3) | 7);
-                               dest[metadata_size / sizeof(uint16_t)] = metadata;
+                               SSVAL(dest, metadata_size / sizeof(uint16_t), metadata);
                                metadata_size = sizeof(uint16_t);
 
                                if (best_len < (15 + 7 + 3)) {
@@ -199,7 +200,7 @@ ssize_t lzxpress_compress(const uint8_t *uncompressed,
                indic_bit++;
 
                if ((indic_bit - 1) % 32 > (indic_bit % 32)) {
-                       *(uint32_t *)indic_pos = indic;
+                       SIVAL(indic_pos, 0, indic);
                        indic = 0;
                        indic_pos = &compressed[compressed_pos];
                        compressed_pos += sizeof(uint32_t);
@@ -213,7 +214,7 @@ ssize_t lzxpress_compress(const uint8_t *uncompressed,
                uncompressed_pos++;
                compressed_pos++;
                 if (((indic_bit - 1) % 32) > (indic_bit % 32)){
-                       *(uint32_t *)indic_pos = indic;
+                       SIVAL(indic_pos, 0, indic);
                        indic = 0;
                        indic_pos = &compressed[compressed_pos];
                        compressed_pos += sizeof(uint32_t);
@@ -225,7 +226,7 @@ ssize_t lzxpress_compress(const uint8_t *uncompressed,
                        indic |= 0 << (32 - ((indic_bit % 32) + 1));
 
                *(uint32_t *)&compressed[compressed_pos] = 0;
-               *(uint32_t *)indic_pos = indic;
+               SIVAL(indic_pos, 0, indic);
                compressed_pos += sizeof(uint32_t);
        }