From cd60b741867259267dd24d15778b2fbfc4bfdc03 Mon Sep 17 00:00:00 2001 From: juhosg Date: Sun, 13 Mar 2011 14:53:43 +0000 Subject: [PATCH] backfire: firmware-utils/wndr3700: allow to specify image magic via command line (backport of r24980) git-svn-id: svn://svn.openwrt.org/openwrt/branches/backfire@26111 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- tools/firmware-utils/src/wndr3700.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/tools/firmware-utils/src/wndr3700.c b/tools/firmware-utils/src/wndr3700.c index 51e5352cb..97b5f1d45 100644 --- a/tools/firmware-utils/src/wndr3700.c +++ b/tools/firmware-utils/src/wndr3700.c @@ -37,7 +37,10 @@ #define BPB 8 /* bits/byte */ +#define WNDR3700_MAGIC_LEN 4 + static uint32_t crc32[1< 3) + magic = argv[3]; + + if (strlen(magic) != WNDR3700_MAGIC_LEN) { + fprintf(stderr, "Invalid magic: '%s'\n", magic); + exit(1); + } + // mmap input_file if ((fd = open(argv[1], O_RDONLY)) < 0 || (len = lseek(fd, 0, SEEK_END)) < 0 @@ -110,7 +121,7 @@ int main(int argc, char **argv) // preload header memcpy(&header, input_file, sizeof(header)); - header.magic = htonl(0x33373030); /* 3700 in ascii */ + memcpy(header.magic, magic, WNDR3700_MAGIC_LEN); header.crc = 0; // create a firmware image in memory and copy the input_file to it