summaryrefslogtreecommitdiff
path: root/tools/scramble.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/scramble.c')
-rw-r--r--tools/scramble.c22
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
44int size_limit[] = 44static 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 }