View Issue Details

IDProjectCategoryView StatusLast Update
0002575Multi Theft Auto : San AndreasGUI / Menus / Consolepublic2007-11-11 16:59
ReporterArc_Assigned ToeAi 
PrioritynormalSeveritycrashReproducibilityalways
Status resolvedResolutionfixed 
Product Versionblue_sa.r2.a12 
Target VersionFixed in Versionmtasadm_v1.0-dp1 
Summary0002575: Using a table with self-references as element data or a call() parameter causes a crash
Description

If you pass a table that contains a reference to itself to setElementData or call, the client or server crashes.

Probably due to a deep copy algorithm that doesn't take this into account and goes into an infinite loop. If that's the case it could be replaced with something like this: http://lua-users.org/wiki/CopyTable

Additional Information

Execute this code client side and do /crashtest. (The frgui resource has this code in it, so you can just /start frgui and /crashtest)

addCommandHandler('crashtest',
function()
local win = guiCreateWindow(10, 10, 100, 300, 'Test', false)
local data = { child = {} }
data.child.parent = data
setElementData(win, 'crashtest', data)
end
)

TagsNo tags attached.

Relationships

related to 0002562 resolvedJax Server lockup when passing tables with function values in them through call() 

Activities

jbeta

2007-10-04 18:59

updater   ~~0005906

Last edited: 2007-10-04 19:03

This is also the case when the table with autoreferences is passed through call() as a function parameter (tested serverside).

EDIT: I suppose it'll happen when returning this kind of table from a HTTP exported function too, haven't tested yet.

Issue History

Date Modified Username Field Change