diff options
Diffstat (limited to 'ndisasm.c')
-rw-r--r-- | ndisasm.c | 11 |
1 files changed, 8 insertions, 3 deletions
@@ -42,7 +42,8 @@ int main(int argc, char **argv) char *pname = *argv; char *filename = NULL; unsigned long nextsync, synclen, initskip = 0L; - int lenread, lendis; + int lenread; + long lendis; int autosync = FALSE; int bits = 16; int eof = FALSE; @@ -181,6 +182,10 @@ int main(int argc, char **argv) } p = ""; /* force to next argument */ break; + default: /*bf*/ + fprintf(stderr, "%s: unrecognised option `-%c'\n", + pname, *p); + return 1; } } else if (!filename) { filename = p; @@ -227,7 +232,7 @@ int main(int argc, char **argv) } else lenread = 0; p += lenread; - if (offset == nextsync) { + if ((unsigned long)offset == nextsync) { if (synclen) { printf("%08lX skipping 0x%lX bytes\n", offset, synclen); offset += synclen; @@ -239,7 +244,7 @@ int main(int argc, char **argv) while (p > q && (p - q >= INSN_MAX || lenread == 0)) { lendis = disasm (q, outbuf, bits, offset, autosync, prefer); if (!lendis || lendis > (p - q) || - lendis > nextsync-offset) + (unsigned long)lendis > nextsync-offset) lendis = eatbyte (q, outbuf); output_ins (offset, q, lendis, outbuf); q += lendis; |