misc: length is unsigned
[pcsx_rearmed.git] / libpcsxcore / misc.c
index 3ee794b..a27f60f 100644 (file)
@@ -57,7 +57,8 @@ void mmssdd( char *b, char *p )
 {
        int m, s, d;
 #if defined(__arm__)
-       int block = (b[3] << 24) | (b[2] << 16) | (b[1] << 8) | b[0];
+       unsigned char *u = (void *)b;
+       int block = (u[3] << 24) | (u[2] << 16) | (u[1] << 8) | u[0];
 #elif defined(__BIGENDIAN__)
        int block = (b[0] & 0xff) | ((b[1] & 0xff) << 8) | ((b[2] & 0xff) << 16) | (b[3] << 24);
 #else
@@ -108,6 +109,7 @@ void mmssdd( char *b, char *p )
 
 int GetCdromFile(u8 *mdir, u8 *time, char *filename) {
        struct iso_directory_record *dir;
+       int retval = -1;
        u8 ddir[4096];
        u8 *buf;
        int i;
@@ -121,7 +123,7 @@ int GetCdromFile(u8 *mdir, u8 *time, char *filename) {
                if (dir->length[0] == 0) {
                        return -1;
                }
-               i += dir->length[0];
+               i += (u8)dir->length[0];
 
                if (dir->flags[0] & 0x2) { // it's a dir
                        if (!strnicmp((char *)&dir->name[0], filename, dir->name_len[0])) {
@@ -137,11 +139,12 @@ int GetCdromFile(u8 *mdir, u8 *time, char *filename) {
                } else {
                        if (!strnicmp((char *)&dir->name[0], filename, strlen(filename))) {
                                mmssdd(dir->extent, (char *)time);
+                               retval = 0;
                                break;
                        }
                }
        }
-       return 0;
+       return retval;
 }
 
 static const unsigned int gpu_ctl_def[] = {