| View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] |
| ID | Project | Category | View Status | Date Submitted | Last Update |
| 0004839 | OCaml | OCaml general | public | 2009-07-22 08:15 | 2012-09-06 19:12 |
|
| Reporter | furuse | |
| Assigned To | | |
| Priority | normal | Severity | crash | Reproducibility | always |
| Status | acknowledged | Resolution | open | |
| Platform | | OS | | OS Version | |
| Product Version | 3.11.1 | |
| Target Version | 4.00.2+dev | Fixed in Version | | |
|
| Summary | 0004839: natdynlink reproducible segfault |
| Description | A 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.
|
| Tags | No tags attached. |
|
| Attached Files | natdynlink-crash.tgz [^] (1,666 bytes) 2009-07-22 08:15 |
|