Bug 785305 - ocaml (bytecode) bindings segfault in 'add_drive_opts'
Summary: ocaml (bytecode) bindings segfault in 'add_drive_opts'
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: libguestfs
Version: 6.3
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: rc
: ---
Assignee: Richard W.M. Jones
QA Contact: Virtualization Bugs
URL:
Whiteboard:
Depends On: libguestfs_rebase6.3 785290
Blocks:
TreeView+ depends on / blocked
 
Reported: 2012-01-27 22:37 UTC by Richard W.M. Jones
Modified: 2012-06-20 07:00 UTC (History)
6 users (show)

Fixed In Version: libguestfs-1.16.3-1.el6
Doc Type: Bug Fix
Doc Text:
No Documentation needed
Clone Of: 785290
Environment:
Last Closed: 2012-06-20 07:00:14 UTC
Target Upstream Version:


Attachments (Terms of Use)
bug785305.ml (264 bytes, text/plain)
2012-01-28 15:25 UTC, Richard W.M. Jones
no flags Details


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2012:0774 0 normal SHIPPED_LIVE Low: libguestfs security, bug fix, and enhancement update 2012-06-19 19:29:50 UTC

Description Richard W.M. Jones 2012-01-27 22:37:02 UTC
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 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 on 2012-01-27 17:36:04 EST ---

Fixed:
https://github.com/libguestfs/libguestfs/commit/799852e64691068f3256c27d18870bdb2537c2be
https://github.com/libguestfs/libguestfs/commit/eb68a314133c88260cdf4547d7d338446488e698

Comment 1 Richard W.M. Jones 2012-01-28 15:25:02 UTC
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

Comment 4 Richard W.M. Jones 2012-04-26 12:17:59 UTC
    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

Comment 6 errata-xmlrpc 2012-06-20 07:00:14 UTC
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


Note You need to log in before you can comment on or make changes to this bug.