1
0
Fork 0

DBG: fixed a bug in the getjit function.

This commit is contained in:
Mr. eXoDia 2014-08-07 20:12:52 +02:00
parent 2522571266
commit bab2aef85a
4 changed files with 7 additions and 6 deletions

View File

@ -115,7 +115,7 @@ static bool _getjitauto(bool* jit_auto)
static bool _getjit(char* jit, bool jit64)
{
arch dummy;
char jit_tmp[512] = "";
char jit_tmp[JIT_ENTRY_MAX_SIZE] = "";
if(!dbggetjit(jit_tmp, jit64 ? x64 : x32, &dummy))
return false;
strcpy(jit, jit_tmp);

View File

@ -1583,9 +1583,9 @@ bool dbgsetjitauto(bool auto_on, arch arch_in, arch* arch_out)
return _readwritejitkey(auto_on ? "1" : "0", & auto_string_size, "Auto", arch_in, arch_out, NULL, true);
}
bool dbggetjit(char jit_entry[512], arch arch_in, arch* arch_out)
bool dbggetjit(char jit_entry[JIT_ENTRY_MAX_SIZE], arch arch_in, arch* arch_out)
{
DWORD jit_entry_size = sizeof(jit_entry);
DWORD jit_entry_size = JIT_ENTRY_MAX_SIZE;
return _readwritejitkey(jit_entry, & jit_entry_size, "Debugger", arch_in, arch_out, NULL, false);
}

View File

@ -8,6 +8,7 @@
#define ATTACH_CMD_LINE "\" -a %ld -e %ld"
#define JIT_ENTRY_DEF_SIZE (MAX_PATH + sizeof(ATTACH_CMD_LINE) + 2)
#define JIT_ENTRY_MAX_SIZE 512
#define JIT_REG_KEY TEXT("SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\AeDebug")
typedef enum
@ -59,7 +60,7 @@ void dbgaddignoredexception(ExceptionRange range);
bool dbgisignoredexception(unsigned int exception);
bool dbgcmdnew(const char* name, CBCOMMAND cbCommand, bool debugonly);
bool dbgcmddel(const char* name);
bool dbggetjit(char jit_entry[512], arch arch_in, arch* arch_out);
bool dbggetjit(char jit_entry[JIT_ENTRY_MAX_SIZE], arch arch_in, arch* arch_out);
bool dbgsetjit(char* jit_cmd, arch arch_in, arch* arch_out);
bool dbggetdefjit(char* jit_entry);
bool _readwritejitkey(char*, DWORD*, char*, arch, arch*, readwritejitkey_error_t*, bool);

View File

@ -1521,7 +1521,7 @@ CMDRESULT cbDebugSetJIT(int argc, char* argv[])
{
char path[JIT_ENTRY_DEF_SIZE];
dbggetdefjit(path);
char get_entry[512] = "";
char get_entry[JIT_ENTRY_MAX_SIZE] = "";
if(!dbggetjit(get_entry, notfound, & actual_arch))
{
dprintf("Error getting JIT %s\n", (actual_arch == x64) ? "x64" : "x32");
@ -1602,7 +1602,7 @@ CMDRESULT cbDebugSetJIT(int argc, char* argv[])
CMDRESULT cbDebugGetJIT(int argc, char* argv[])
{
char get_entry[512] = "";
char get_entry[JIT_ENTRY_MAX_SIZE] = "";
arch actual_arch;
if(argc < 2)