added buffer length parameter to prevent vulnerability to buffer
authorEd Beroset <beroset@mindspring.com>
Wed, 15 Dec 2004 18:27:21 +0000 (18:27 +0000)
committerEd Beroset <beroset@mindspring.com>
Wed, 15 Dec 2004 18:27:21 +0000 (18:27 +0000)
overflow exploits.

ndisasm.c

index 71d07df..a167d87 100644 (file)
--- a/ndisasm.c
+++ b/ndisasm.c
@@ -243,10 +243,10 @@ int main(int argc, char **argv)
            nextsync = next_sync (offset, &synclen);
        }
        while (p > q && (p - q >= INSN_MAX || lenread == 0)) {
-           lendis = disasm (q, outbuf, bits, offset, autosync, prefer);
+           lendis = disasm (q, outbuf, sizeof(outbuf), bits, offset, autosync, prefer);
            if (!lendis || lendis > (p - q) ||
                (unsigned long)lendis > nextsync-offset)
-               lendis = eatbyte (q, outbuf);
+               lendis = eatbyte (q, outbuf, sizeof(outbuf));
            output_ins (offset, q, lendis, outbuf);
            q += lendis;
            offset += lendis;