diff options
author | Cyrill Gorcunov <gorcunov@gmail.com> | 2010-09-12 13:37:53 +0400 |
---|---|---|
committer | Cyrill Gorcunov <gorcunov@gmail.com> | 2010-09-12 13:37:53 +0400 |
commit | 9e1c9ce8e9cee778d4fee89e83207a4bda539bdd (patch) | |
tree | 16d281929803002be6772b18394ee23da2f499a0 /disasm.c | |
parent | 5ace91d6819bd8341699c1e24dddfbbf1e58c38a (diff) | |
download | nasm-9e1c9ce8e9cee778d4fee89e83207a4bda539bdd.tar.gz nasm-9e1c9ce8e9cee778d4fee89e83207a4bda539bdd.tar.bz2 nasm-9e1c9ce8e9cee778d4fee89e83207a4bda539bdd.zip |
BR3064376: ndisasm crash
ndisasm may crash due to lack of check of VEX table index.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Diffstat (limited to 'disasm.c')
-rw-r--r-- | disasm.c | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -1102,7 +1102,7 @@ int32_t disasm(uint8_t *data, char *output, int outbufsize, int segsize, prefix.vex_v = (~prefix.vex[2] >> 3) & 15; prefix.vex_lp = prefix.vex[2] & 7; - ix = itable_vex[RV_XOP][prefix.vex_m][prefix.vex_lp]; + ix = itable_vex[RV_XOP][prefix.vex_m][prefix.vex_lp & 3]; } end_prefix = true; break; |