brcm63xx: add support for Huawei HG622
[librecmc/librecmc.git] / tools / firmware-utils / src / trx.c
index 426a6b58343e3eac985189d5cb1c198bd5feb5d4..aa1f5be4b65b66ac9a1a48d7304d9bef131080e1 100644 (file)
@@ -68,7 +68,7 @@ uint32_t crc32buf(char *buf, size_t len);
 
 #define TRX_MAGIC      0x30524448      /* "HDR0" */
 #define TRX_MAX_LEN    0x720000
-#define TRX_NO_HEADER  1               /* Do not write TRX header */   
+#define TRX_NO_HEADER  1               /* Do not write TRX header */
 
 struct trx_header {
        uint32_t magic;                 /* "HDR0" */
@@ -262,7 +262,7 @@ int main(int argc, char **argv)
                cur_len += ROUND - n;
        }
 
-       /* for TRXv2 set bin-header Flags to 0xFF for CRC calculation like CFE does */ 
+       /* for TRXv2 set bin-header Flags to 0xFF for CRC calculation like CFE does */
        if (trx_version == 2) {
                if(cur_len - LOAD32_LE(p->offsets[3]) < sizeof(binheader)) {
                        fprintf(stderr, "TRXv2 binheader too small!\n");
@@ -273,11 +273,10 @@ int main(int argc, char **argv)
        }
 
        p->crc32 = crc32buf((char *) &p->flag_version,
-                                               (fsmark)?fsmark:cur_len - offsetof(struct trx_header, flag_version));
+                                               ((fsmark)?fsmark:cur_len) - offsetof(struct trx_header, flag_version));
        p->crc32 = STORE32_LE(p->crc32);
 
-       p->len = (fsmark)?fsmark:cur_len - offsetof(struct trx_header, flag_version);
-       p->len = STORE32_LE(p->len);
+       p->len = STORE32_LE((fsmark) ? fsmark : cur_len);
 
        /* restore TRXv2 bin-header */
        if (trx_version == 2) {
@@ -290,7 +289,7 @@ int main(int argc, char **argv)
        }
 
        fclose(out);
-       
+
        return EXIT_SUCCESS;
 }