Fix sidebar crash (#99)

* Fix crash on invalid asm/hex

Added nullptr checks because the called functions can (and will)
return NULL

* Call disassemble when hex2asm is clicked

* Change order on != comparison

* Fix missing whitspace
This commit is contained in:
C. Balles 2017-04-09 04:49:16 +02:00 committed by Duncan Ogilvie
parent cd1df4e08c
commit 0c69988f83
2 changed files with 4 additions and 4 deletions

View File

@ -511,14 +511,14 @@ void QRCore::setDefaultCPU() {
QString QRCore::assemble(const QString &code) { QString QRCore::assemble(const QString &code) {
RAsmCode *ac = r_asm_massemble (core->assembler, code.toUtf8().constData()); RAsmCode *ac = r_asm_massemble (core->assembler, code.toUtf8().constData());
QString hex = QString(ac->buf_hex); QString hex(ac != nullptr ? ac->buf_hex : "");
r_asm_code_free (ac); r_asm_code_free (ac);
return hex; return hex;
} }
QString QRCore::disassemble(const QString &hex) { QString QRCore::disassemble(const QString &hex) {
RAsmCode *ac = r_asm_mdisassemble_hexstr(core->assembler, hex.toUtf8().constData()); RAsmCode *ac = r_asm_mdisassemble_hexstr(core->assembler, hex.toUtf8().constData());
QString code = QString (ac->buf_asm); QString code = QString (ac != nullptr ? ac->buf_asm : "");
r_asm_code_free (ac); r_asm_code_free (ac);
return code; return code;
} }
@ -540,7 +540,7 @@ int QRCore::get_size()
{ {
RBinObject *obj = r_bin_get_object(core->bin); RBinObject *obj = r_bin_get_object(core->bin);
//return obj->size; //return obj->size;
return obj->obj_size; return obj != nullptr ? obj->obj_size : 0;
} }
ulong QRCore::get_baddr() ulong QRCore::get_baddr()

View File

@ -89,7 +89,7 @@ void SideBar::on_asm2hex_clicked()
void SideBar::on_hex2asm_clicked() void SideBar::on_hex2asm_clicked()
{ {
ui->asmInput->setPlainText(main->core->assemble(ui->hexInput->toPlainText())); ui->asmInput->setPlainText(main->core->disassemble(ui->hexInput->toPlainText()));
} }
void SideBar::on_respButton_toggled(bool checked) void SideBar::on_respButton_toggled(bool checked)