You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Original bug ID: 4030 Reporter:@mmottl Status: closed (set by @xavierleroy on 2006-06-10T09:03:22Z) Resolution: fixed Priority: normal Severity: major Version: 3.09.2 Category: ~DO NOT USE (was: OCaml general) Monitored by:@mmottl
Bug description
If I am not mistaken, the function "caml_output_value_to_string" in byterun/extern.c is buggy, because it does not save the pointer "extern_output_first" to the marshalling blocks before calling the string allocation function. Allocating the string might cause the GC to call finalisation functions, which might call marshalling functions again, thus making this global pointer refer to wrong data. The function "caml_output_val" got it right, and should be used as example for the correct way to handle that case.
The text was updated successfully, but these errors were encountered:
Original bug ID: 4030
Reporter: @mmottl
Status: closed (set by @xavierleroy on 2006-06-10T09:03:22Z)
Resolution: fixed
Priority: normal
Severity: major
Version: 3.09.2
Category: ~DO NOT USE (was: OCaml general)
Monitored by: @mmottl
Bug description
If I am not mistaken, the function "caml_output_value_to_string" in byterun/extern.c is buggy, because it does not save the pointer "extern_output_first" to the marshalling blocks before calling the string allocation function. Allocating the string might cause the GC to call finalisation functions, which might call marshalling functions again, thus making this global pointer refer to wrong data. The function "caml_output_val" got it right, and should be used as example for the correct way to handle that case.
The text was updated successfully, but these errors were encountered: