From f33d44f9868b7fa21cd9ae1e26530378c3cd398f Mon Sep 17 00:00:00 2001 From: practicalswift <practicalswift@users.noreply.github.com> Date: Sun, 29 May 2016 05:13:16 -0400 Subject: [PATCH] Add two crash cases: * crash-23-x64-value-does-not-fit-in-the-fixup-field.c * crash-24-x64-not-is16bitmemoperand.c --- ...64-value-does-not-fit-in-the-fixup-field.c | 19 +++++++++++++++++++ .../crash-24-x64-not-is16bitmemoperand.c | 19 +++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 suite/regress/c-crashers/crash-23-x64-value-does-not-fit-in-the-fixup-field.c create mode 100644 suite/regress/c-crashers/crash-24-x64-not-is16bitmemoperand.c diff --git a/suite/regress/c-crashers/crash-23-x64-value-does-not-fit-in-the-fixup-field.c b/suite/regress/c-crashers/crash-23-x64-value-does-not-fit-in-the-fixup-field.c new file mode 100644 index 0000000..e65fa86 --- /dev/null +++ b/suite/regress/c-crashers/crash-23-x64-value-does-not-fit-in-the-fixup-field.c @@ -0,0 +1,19 @@ +#include <keystone/keystone.h> +int main(int argc, char **argv) { + int ks_arch = KS_ARCH_X86, ks_mode = KS_MODE_64; + unsigned char assembly[] = { + 'l', 'o', 'o', 'p', ' ', '0', 'x', '1', '0', '2', + 0x00, + }; + ks_engine *ks; + ks_err err = ks_open(ks_arch, ks_mode, &ks); + if (!err) { + size_t count, size; + unsigned char *insn; + if (ks_asm(ks, (char *)assembly, 0, &insn, &size, &count)) + printf("ERROR: failed on ks_asm() with error = %s, code = %u\n", ks_strerror(ks_errno(ks)), ks_errno(ks)); + ks_free(insn); + } + ks_close(ks); + return 0; +} diff --git a/suite/regress/c-crashers/crash-24-x64-not-is16bitmemoperand.c b/suite/regress/c-crashers/crash-24-x64-not-is16bitmemoperand.c new file mode 100644 index 0000000..04a1ee6 --- /dev/null +++ b/suite/regress/c-crashers/crash-24-x64-not-is16bitmemoperand.c @@ -0,0 +1,19 @@ +#include <keystone/keystone.h> +int main(int argc, char **argv) { + int ks_arch = KS_ARCH_X86, ks_mode = KS_MODE_64; + unsigned char assembly[] = { + 'a', 'd', 'd', ' ', '[', 'a', 'l', '+', 's', 'i', + '+', '0', 'x', '0', ']', ',', ' ', 's', 'i', 0x00, + }; + ks_engine *ks; + ks_err err = ks_open(ks_arch, ks_mode, &ks); + if (!err) { + size_t count, size; + unsigned char *insn; + if (ks_asm(ks, (char *)assembly, 0, &insn, &size, &count)) + printf("ERROR: failed on ks_asm() with error = %s, code = %u\n", ks_strerror(ks_errno(ks)), ks_errno(ks)); + ks_free(insn); + } + ks_close(ks); + return 0; +} -- GitLab