Red Hat Bugzilla – Bug 785305
ocaml (bytecode) bindings segfault in 'add_drive_opts'
Last modified: 2012-06-20 03:00:14 EDT
Stupid error, easy to reproduce, simple fix. +++ This bug was initially created as a clone of Bug #785290 +++ Description of problem: $ ocaml Objective Caml version 3.12.1 # #use "topfind";; - : unit = () Findlib has been successfully loaded. Additional directives: #require "package";; to load a package #list;; to list the available packages #camlp4o;; to load camlp4 (standard syntax) #camlp4r;; to load camlp4 (revised syntax) #predicates "p,q,...";; to set these predicates Topfind.reset();; to force that packages will be reloaded #thread;; to enable threads - : unit = () # #require "guestfs";; /usr/lib64/ocaml/unix.cma: loaded /usr/lib64/ocaml/guestfs: added to search path /usr/lib64/ocaml/guestfs/mlguestfs.cma: loaded # #use "/usr/share/doc/ocaml-libguestfs-devel-1.17.2/create_disk.ml";; val output : string = "disk.img" libguestfs: trace: set_autosync true libguestfs: trace: set_autosync = 0 Segmentation fault Version-Release number of selected component (if applicable): 1.17.2 How reproducible: 100% (bytecode) Doesn't segfault in native code. --- Additional comment from rjones@redhat.com on 2012-01-27 16:42:00 EST --- Stack trace: #0 __strlen_sse2 () at ../sysdeps/x86_64/strlen.S:32 #1 0x0000003a24686a76 in __GI___strdup (s=0x1 <Address 0x1 out of bounds>) at strdup.c:42 #2 0x00007ffff109bd8c in guestfs_safe_strdup () from /usr/lib64/libguestfs.so.0 #3 0x00007ffff1335f76 in ocaml_guestfs_add_drive_opts (gv=1, readonlyv=1, formatv=140737352560936, ifacev=1, namev=1, filenamev=1) at guestfs_c_actions.c:732 #4 0x000000000041b3d1 in caml_interprete (prog=0x7ffff7bd2010, prog_size=<optimized out>) at interp.c:905 #5 0x000000000041cf73 in caml_main (argv=0x7fffffffdf08) at startup.c:424 #6 0x0000000000409dbc in main (argc=<optimized out>, argv=<optimized out>) Note in frame #3 that filenamev is bogus; it should be a string value. --- Additional comment from rjones@redhat.com on 2012-01-27 17:36:04 EST --- Fixed: https://github.com/libguestfs/libguestfs/commit/799852e64691068f3256c27d18870bdb2537c2be https://github.com/libguestfs/libguestfs/commit/eb68a314133c88260cdf4547d7d338446488e698
Created attachment 558048 [details] bug785305.ml Bug reproducer. (1) Save this attachment as 'bug785305.ml' (2) chmod +x bug785305.ml (3) Install ocaml-libguestfs-devel + dependencies (4) ./bug785305.ml If it segfaults => bug If it prints a message => OK
Technical note added. If any revisions are required, please edit the "Technical Notes" field accordingly. All revisions will be proofread by the Engineering Content Services team. New Contents: No Documentation needed
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. http://rhn.redhat.com/errata/RHSA-2012-0774.html