1
0
Fork 0

Fix yara crash when used with a single argument

This commit is contained in:
Bálint Faragó 2018-11-01 01:01:04 +01:00 committed by Duncan Ogilvie
parent 50580782e2
commit 5162450ff3
1 changed files with 4 additions and 4 deletions

View File

@ -1111,7 +1111,7 @@ bool cbInstrYara(int argc, char* argv[])
duint base = 0;
duint size = 0;
duint mod = ModBaseFromName(argv[2]);
duint mod = argc > 2 ? ModBaseFromName(argv[2]) : 0;
bool rawFile = false;
if(mod)
{
@ -1121,14 +1121,14 @@ bool cbInstrYara(int argc, char* argv[])
}
else
{
if(!valfromstring(argv[2], &addr))
if(argc > 2 && !valfromstring(argv[2], &addr))
{
dprintf(QT_TRANSLATE_NOOP("DBG", "Invalid value \"%s\"!\n"), argv[2]);
return false;
}
size = 0;
if(argc >= 4)
if(argc > 3)
if(!valfromstring(argv[3], &size))
size = 0;
if(!size)
@ -1196,7 +1196,7 @@ bool cbInstrYara(int argc, char* argv[])
GuiReferenceAddColumn(10, GuiTranslateText(QT_TRANSLATE_NOOP("DBG", "Data")));
GuiReferenceSetRowCount(0);
GuiReferenceReloadData();
YaraScanInfo scanInfo(base, rawFile, argv[2], settingboolget("Engine", "YaraDebug"));
YaraScanInfo scanInfo(base, rawFile, argc > 2 ? argv[2] : modname, settingboolget("Engine", "YaraDebug"));
duint ticks = GetTickCount();
dputs(QT_TRANSLATE_NOOP("DBG", "[YARA] Scan started..."));
int err = yr_rules_scan_mem(yrRules, data(), size, 0, yaraScanCallback, &scanInfo, 0);