summaryrefslogtreecommitdiff
path: root/ndisasm.c
diff options
context:
space:
mode:
Diffstat (limited to 'ndisasm.c')
-rw-r--r--ndisasm.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/ndisasm.c b/ndisasm.c
index 354ea3c4..53de839c 100644
--- a/ndisasm.c
+++ b/ndisasm.c
@@ -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;