-
Notifications
You must be signed in to change notification settings - Fork 99
IDA Crashes when syncing structures #78
Comments
Update: This only appears to happen one way when user A creates or edits structures in their database. If user B makes the change then this is correctly synced to user A's database and no crash occurs. |
Hi sday15, |
Hi @sday15, |
We can try to unhook when one of my them occurred?
patateqbool <notifications@github.com>于2018年11月19日 周一15:48写道:
… Hi @sday15 <https://github.com/sday15>,
I've tried to fix the bug, unfortunately LocalTypes and user-defined
Struct/Enum conflict...
I'm still working on a solution for this issue.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#78 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AFGMrzMQxIXGbJUtjhFVd8z-ho7Wxcliks5uwmI7gaJpZM4YmCzx>
.
|
Sorry, I'm not sure to understand the sentence correctly, but here is my answer: When creating a struct/enum in struc/enum view, first a LocalTypesChanged event is sent, then a Struct/enum related event is sent. For the moment, my only idea is to "queue" the LocalTypesChanged event, wait for the next event, if the next event is a Struct/enum related event, drop the LocalTypesChanged event, else send LocalTypesChanged event then the next event. |
Yeah, as the Local Types part was first implemented by me, I noticed this
before, and it’s in fact the source of lots of struct issues. I mean that
we can unhook the Struct related hooks and re-enable it afterwards.
Or we can consider simply remove the struct hooks as it’s connected with
local types internally?
patateqbool <notifications@github.com>于2018年11月20日 周二22:01写道:
… Sorry, I'm not sure to understand the sentence correctly, but here is my
answer:
When creating a struct/enum in struc/enum view, first a LocalTypesChanged
event is sent, then a Struct/enum related event is sent. For the moment, my
only idea is to "queue" the LocalTypesChanged event, wait for the next
event, if the next event is a Struct/enum related event, drop the
LocalTypesChanged event, else send LocalTypesChanged event then the next
event.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#78 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AFGMr5U6vgXeTq3P_6bYmgBXHEcjDtiDks5uxAtKgaJpZM4YmCzx>
.
|
Currently, we can't rely on our implementation of LocalTypes synchronization because we delete the structure each time a member is added in it. It's a problem because it breaks all the Structure Offset dependency used in the assembly view. |
Maybe we can ask HexRays Team for some advice? They have access to the
kernel source so they can tell us how to hook correctly.
patateqbool <notifications@github.com>于2018年11月21日 周三01:24写道:
… Currently, we can't rely on our implementation of LocalTypes
synchronization because we delete the structure each time a member is added
in it. It's a problem because it breaks all the Structure Offset dependency
used in the assembly view.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#78 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AFGMr1E07X5sKo1PKthWgYGyEIWsxJi7ks5uxDrigaJpZM4YmCzx>
.
|
I agree, I'm going to push a fix that disables localTypes tonight until we have a stable fix to integrate them. |
disabling localTypes appears to have fixed the crashing issue. |
Good to know, I am always looking for a solution to properly integrate localTypes. |
It looks like applying structures to a memory address in the "IDA View", using Alt-Q does not appear to be synced properly between users anymore. Structures that were created before this change do sync, but any that were created after the change (even though they sync correctly) don't get applied. |
I guess this manipulation calls LocalTypesChangedEvent, which is now commented due to the previous bug. |
2 uses are using IDArling to work on a database.
If user A creates or edits any structure (including renaming fields) then the IDA instance for user B will crash.
From turning the server logging level up to DEBUG it looks like the IDA instance crashes either during or after receiving the DefaultEvent packet that contains the full information of all the structures in user A's database.
Here is a redacted extract from the server log:
This issue appears to be 100% repeatable across all databases. We are using IDA 7.1 on Ubuntu with the standalone server.
The text was updated successfully, but these errors were encountered: