Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0004839OCamlOCaml generalpublic2009-07-22 08:152014-07-16 20:07
Reporterfuruse 
Assigned To 
PrioritynormalSeveritycrashReproducibilityalways
StatusacknowledgedResolutionopen 
PlatformOSOS Version
Product Version3.11.1 
Target Versionafter-4.02.0Fixed in Version 
Summary0004839: natdynlink reproducible segfault
DescriptionA packed module in a dll cmxs overwrites the packed module of the same name in the host program at dynlinking. If these two packed modules have incompatible signatures, the program may easily seg-faults.

We have found this when we wrongly created dll cmxs linking with a module of the host program. I upload a reproducible example. make all test shows the crash.

- plugin : a base dll which works fine
- plugin2 : a dll with a incompatible signature. Rejected correctly at linking.
- plugin3 : same as plugin2, but mistakenly linked with the api module. Self-contained. Crashes the host program at linking.
- plugin4 : a dll which shows that the overwrite. The host programs Packed.Api.zero is overwritten by the dll's Packed.Api.zero.
TagsNo tags attached.
Attached Filestgz file icon natdynlink-crash.tgz [^] (1,666 bytes) 2009-07-22 08:15

- Relationships
related to 0004231closedlefessan Link multiple casse le système de types 
related to 0004229acknowledged Casser le typage avec Dynlink 
related to 0006462acknowledged Dynlinking duplicate module clobbers host program state 

-  Notes
(0005028)
frisch (developer)
2009-07-22 09:18

I reported such a problem some time ago: 0004229. In fact, you don't even need to use dynlink in order to break the type system when you link in different modules with the same name/signature; regular packing/linking will do: 0004231.

- Issue History
Date Modified Username Field Change
2009-07-22 08:15 furuse New Issue
2009-07-22 08:15 furuse File Added: natdynlink-crash.tgz
2009-07-22 09:18 frisch Note Added: 0005028
2009-07-22 09:18 frisch Relationship added related to 0004231
2009-07-22 09:19 frisch Relationship added parent of 0004229
2009-07-22 09:19 frisch Relationship deleted parent of 0004229
2009-07-22 09:19 frisch Relationship added related to 0004229
2010-04-21 11:34 doligez Status new => acknowledged
2012-07-06 16:08 doligez Target Version => 4.01.0+dev
2012-07-31 13:36 doligez Target Version 4.01.0+dev => 4.00.1+dev
2012-09-06 19:12 frisch Target Version 4.00.1+dev => 4.00.2+dev
2013-06-03 16:48 doligez Target Version 4.00.2+dev => 4.02.0+dev
2013-07-12 18:15 doligez Target Version 4.02.0+dev => 4.01.1+dev
2014-05-25 20:20 doligez Target Version 4.01.1+dev => 4.02.0+dev
2014-07-16 10:22 doligez Relationship added related to 0006462
2014-07-16 20:07 doligez Target Version 4.02.0+dev => after-4.02.0


Copyright © 2000 - 2011 MantisBT Group
Powered by Mantis Bugtracker