diff options
Diffstat (limited to 'tools/scramble.c')
-rw-r--r-- | tools/scramble.c | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/tools/scramble.c b/tools/scramble.c index 91f46be816..7efade3419 100644 --- a/tools/scramble.c +++ b/tools/scramble.c | |||
@@ -41,7 +41,7 @@ enum | |||
41 | ARCHOS_ONDIO_FM | 41 | ARCHOS_ONDIO_FM |
42 | }; | 42 | }; |
43 | 43 | ||
44 | int size_limit[] = | 44 | static unsigned int size_limit[] = |
45 | { | 45 | { |
46 | 0x32000, /* ARCHOS_PLAYER */ | 46 | 0x32000, /* ARCHOS_PLAYER */ |
47 | 0x64000, /* ARCHOS_V2RECORDER */ | 47 | 0x64000, /* ARCHOS_V2RECORDER */ |
@@ -132,10 +132,10 @@ int main (int argc, char** argv) | |||
132 | unsigned char header[24]; | 132 | unsigned char header[24]; |
133 | char *iname = argv[1]; | 133 | char *iname = argv[1]; |
134 | char *oname = argv[2]; | 134 | char *oname = argv[2]; |
135 | char *xorstring; | 135 | char *xorstring=NULL; |
136 | int headerlen = 6; | 136 | int headerlen = 6; |
137 | FILE* file; | 137 | FILE* file; |
138 | int version; | 138 | int version=0; |
139 | unsigned long modelnum; | 139 | unsigned long modelnum; |
140 | char modelname[5]; | 140 | char modelname[5]; |
141 | int model_id; | 141 | int model_id; |
@@ -351,7 +351,6 @@ int main (int argc, char** argv) | |||
351 | } | 351 | } |
352 | else if(!strncmp(argv[1], "-mi4", 4)) { | 352 | else if(!strncmp(argv[1], "-mi4", 4)) { |
353 | int mi4magic; | 353 | int mi4magic; |
354 | int version; | ||
355 | char model[4] = ""; | 354 | char model[4] = ""; |
356 | char type[4] = ""; | 355 | char type[4] = ""; |
357 | 356 | ||
@@ -402,7 +401,7 @@ int main (int argc, char** argv) | |||
402 | 401 | ||
403 | if ((method == scramble) && | 402 | if ((method == scramble) && |
404 | ((length + headerlen) >= size_limit[model_id])) { | 403 | ((length + headerlen) >= size_limit[model_id])) { |
405 | printf("error: firmware image is %d bytes while max size is %d!\n", | 404 | printf("error: firmware image is %ld bytes while max size is %u!\n", |
406 | length + headerlen, | 405 | length + headerlen, |
407 | size_limit[model_id]); | 406 | size_limit[model_id]); |
408 | fclose(file); | 407 | fclose(file); |
@@ -462,6 +461,10 @@ int main (int argc, char** argv) | |||
462 | outbuf[slen++] = inbuf[i]; | 461 | outbuf[slen++] = inbuf[i]; |
463 | } | 462 | } |
464 | break; | 463 | break; |
464 | case none: | ||
465 | default: | ||
466 | /* dummy case just to silence picky compilers */ | ||
467 | break; | ||
465 | } | 468 | } |
466 | 469 | ||
467 | if((method == none) || (method == scramble) || (method == xor)) { | 470 | if((method == none) || (method == scramble) || (method == xor)) { |
@@ -598,7 +601,7 @@ int iaudio_encode(char *iname, char *oname, char *idstring) | |||
598 | } | 601 | } |
599 | 602 | ||
600 | len = fread(outbuf+0x1030, 1, length, file); | 603 | len = fread(outbuf+0x1030, 1, length, file); |
601 | if(len < length) { | 604 | if(len < (size_t) length) { |
602 | perror(iname); | 605 | perror(iname); |
603 | return -2; | 606 | return -2; |
604 | } | 607 | } |
@@ -626,12 +629,13 @@ int iaudio_encode(char *iname, char *oname, char *idstring) | |||
626 | } | 629 | } |
627 | 630 | ||
628 | len = fwrite(outbuf, 1, length+0x1030, file); | 631 | len = fwrite(outbuf, 1, length+0x1030, file); |
629 | if(len < length) { | 632 | if(len < (size_t)length) { |
630 | perror(oname); | 633 | perror(oname); |
631 | return -4; | 634 | return -4; |
632 | } | 635 | } |
633 | 636 | ||
634 | fclose(file); | 637 | fclose(file); |
638 | return 0; | ||
635 | } | 639 | } |
636 | 640 | ||
637 | 641 | ||
@@ -697,7 +701,7 @@ int ipod_encode(char *iname, char *oname, int fw_ver, bool fake_rsrc) | |||
697 | } | 701 | } |
698 | 702 | ||
699 | len = fread(outbuf+0x4600, 1, length, file); | 703 | len = fread(outbuf+0x4600, 1, length, file); |
700 | if(len < length) { | 704 | if(len < (size_t)length) { |
701 | perror(iname); | 705 | perror(iname); |
702 | return -2; | 706 | return -2; |
703 | } | 707 | } |
@@ -754,7 +758,7 @@ int ipod_encode(char *iname, char *oname, int fw_ver, bool fake_rsrc) | |||
754 | } | 758 | } |
755 | 759 | ||
756 | len = fwrite(outbuf, 1, length+0x4600, file); | 760 | len = fwrite(outbuf, 1, length+0x4600, file); |
757 | if(len < length) { | 761 | if(len < (size_t)length) { |
758 | perror(oname); | 762 | perror(oname); |
759 | return -4; | 763 | return -4; |
760 | } | 764 | } |