diff options
| author | Fabrice Desclaux <fabrice.desclaux@cea.fr> | 2015-07-01 15:42:48 +0200 |
|---|---|---|
| committer | Fabrice Desclaux <fabrice.desclaux@cea.fr> | 2015-07-01 15:42:48 +0200 |
| commit | fa7b47611268f535d2acfa4384a172023faed6b4 (patch) | |
| tree | c4674e2f45a7b20b6e3b8a829627da1c4976f610 | |
| parent | c4f4b5bf0484dfbb516d3b80e958c57fc8c2aebf (diff) | |
| download | miasm-fa7b47611268f535d2acfa4384a172023faed6b4.tar.gz miasm-fa7b47611268f535d2acfa4384a172023faed6b4.zip | |
Win_api: fix cornercases
| -rw-r--r-- | miasm2/os_dep/win_api_x86_32.py | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/miasm2/os_dep/win_api_x86_32.py b/miasm2/os_dep/win_api_x86_32.py index e30ff21f..62254a66 100644 --- a/miasm2/os_dep/win_api_x86_32.py +++ b/miasm2/os_dep/win_api_x86_32.py @@ -518,6 +518,10 @@ def kernel32_CreateFile(jitter, funcname, get_str): "dwcreationdisposition", "dwflagsandattr", "htemplatefile"]) + if args.lpfilename == 0: + jitter.func_ret_stdcall(ret_ad, 0xffffffff) + return + fname = get_str(jitter, args.lpfilename) log.debug('fname %s', fname) ret = 0xffffffff @@ -2541,7 +2545,8 @@ def user32_MessageBoxA(jitter): def kernel32_myGetTempPath(jitter, func): ret_ad, args = jitter.func_args_stdcall(["l", "buf"]) l = 'c:\\temp\\' - jitter.vm.set_mem(args.buf, func(l + '\x00')) + if len(l) < args.l: + jitter.vm.set_mem(args.buf, func(l + '\x00')) jitter.func_ret_stdcall(ret_ad, len(l)) |