diff options
author | Dave Chapman <dave@dchapman.com> | 2007-07-29 21:47:05 +0000 |
---|---|---|
committer | Dave Chapman <dave@dchapman.com> | 2007-07-29 21:47:05 +0000 |
commit | f119dc0d8202f8a000153fcf3558d336f2ff5c30 (patch) | |
tree | 28cb941b0ed37ee8976d76d25cc72ca48bf3c797 /rbutil | |
parent | 33bc6f3e3c8c67a43b6dc9ce7cc92405c016b187 (diff) | |
download | rockbox-f119dc0d8202f8a000153fcf3558d336f2ff5c30.tar.gz rockbox-f119dc0d8202f8a000153fcf3558d336f2ff5c30.zip |
Add -W to CFLAGS in Makefile and fix generated warnings. Also close a file handle which was being left open
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14069 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'rbutil')
-rw-r--r-- | rbutil/sansapatcher/Makefile | 2 | ||||
-rw-r--r-- | rbutil/sansapatcher/sansapatcher.c | 26 |
2 files changed, 20 insertions, 8 deletions
diff --git a/rbutil/sansapatcher/Makefile b/rbutil/sansapatcher/Makefile index 28ba1dae6a..b05d8f3257 100644 --- a/rbutil/sansapatcher/Makefile +++ b/rbutil/sansapatcher/Makefile @@ -1,4 +1,4 @@ -CFLAGS=-Wall -D_LARGEFILE64_SOURCE +CFLAGS=-Wall -W -D_LARGEFILE64_SOURCE ifeq ($(findstring CYGWIN,$(shell uname)),CYGWIN) OUTPUT=sansapatcher.exe diff --git a/rbutil/sansapatcher/sansapatcher.c b/rbutil/sansapatcher/sansapatcher.c index 3f25762a14..9b52196a7b 100644 --- a/rbutil/sansapatcher/sansapatcher.c +++ b/rbutil/sansapatcher/sansapatcher.c @@ -60,14 +60,21 @@ static off_t filesize(int fd) { #define MAX_SECTOR_SIZE 2048 #define SECTOR_SIZE 512 -int static inline le2int(unsigned char* buf) +static inline int32_t le2int(unsigned char* buf) { int32_t res = (buf[3] << 24) | (buf[2] << 16) | (buf[1] << 8) | buf[0]; return res; } -void static inline int2le(unsigned int val, unsigned char* addr) +static inline uint32_t le2uint(unsigned char* buf) +{ + uint32_t res = (buf[3] << 24) | (buf[2] << 16) | (buf[1] << 8) | buf[0]; + + return res; +} + +static inline void int2le(unsigned int val, unsigned char* addr) { addr[0] = val & 0xFF; addr[1] = (val >> 8) & 0xff; @@ -223,7 +230,7 @@ void tea_decrypt(uint32_t* v0, uint32_t* v1, uint32_t* k) { void tea_decrypt_buf(unsigned char* src, unsigned char* dest, size_t n, uint32_t * key) { uint32_t v0, v1; - int i; + unsigned int i; for (i = 0; i < (n / 8); i++) { v0 = le2int(src); @@ -503,7 +510,7 @@ static int load_original_firmware(struct sansa_t* sansa, unsigned char* buf, str tmpbuf, mi4header->mi4size-(mi4header->plaintext+0x200), keys[i]); - key_found = (le2int(tmpbuf+mi4header->length-mi4header->plaintext-4) == 0xaa55aa55); + key_found = (le2uint(tmpbuf+mi4header->length-mi4header->plaintext-4) == 0xaa55aa55); } if (key_found) { @@ -547,7 +554,11 @@ int sansa_read_firmware(struct sansa_t* sansa, char* filename) return -1; } - write(outfile,sectorbuf,mi4header.mi4size); + res = write(outfile,sectorbuf,mi4header.mi4size); + if (res != (int)mi4header.mi4size) { + fprintf(stderr,"[ERR] Write error - %d\n", res); + return -1; + } close(outfile); return 0; @@ -557,8 +568,8 @@ int sansa_read_firmware(struct sansa_t* sansa, char* filename) int sansa_add_bootloader(struct sansa_t* sansa, char* filename, int type) { int res; - int infile; - int bl_length; + int infile = -1; /* Prevent an erroneous "may be used uninitialised" gcc warning */ + int bl_length = 0; /* Keep gcc happy when building for rbutil */ struct mi4header_t mi4header; int n; int length; @@ -587,6 +598,7 @@ int sansa_add_bootloader(struct sansa_t* sansa, char* filename, int type) if (type==FILETYPE_MI4) { /* Read bootloader into sectorbuf+0x200 */ n = read(infile,sectorbuf+0x200,bl_length); + close(infile); if (n < bl_length) { fprintf(stderr,"[ERR] Short read - requested %d bytes, received %d\n" ,bl_length,n); |