Switch branches/tags
Commits on Jun 9, 2014
Commits on May 22, 2014
  1. Moar changelog updates.

    flavorjones committed May 22, 2014
  2. CHANGELOG updates.

    flavorjones committed May 22, 2014
  3. Clean all occurrences of _private on GC when libxml-ruby is loaded.

    ender672 authored and flavorjones committed Apr 25, 2013
    libxml-ruby uses the global libxml2 callback xmlDeregisterNodeDefault.
    This callback looks in the _private field for every deleted libxml2
    node. If the _private field is set, it is treated as a Ruby VALUE ptr.
    The callback NULLs the Ruby object's data pointer and mark & free fn
    When Nokogiri wraps a libxml2 document it puts a nokogiriTuple ptr
    in the _private field. We can't let the libxml-ruby callback be
    invoked on a libxml2 document before NULLing the document _private
    When Nokogiri wraps other libxml2 nodes it puts VALUE ptrs in the
    _private field. This makes the libxml-ruby callback generally safe for
    these node types.
    There is a caveat - it is unsafe to access VALUE ptrs during GC sweep.
    This commit tests whether the xmlDeregisterNodeDefault callback is set
    during document cleanup. If set, we traverse the document and clean up
    all _private fields.
    The previous solution was to unset xmlDeregisterNodeDefault callback.
    However, this doesn't work in multithreaded environments.
  4. Close #1087. Fix JRuby memory exhaustion vulnerability

    ocher authored and jvshahid committed Apr 30, 2014
    Thanks to Michal Ochman for fixing this.
Commits on May 14, 2014
  1. Revert c98745d.

    knu authored and flavorjones committed May 13, 2014
    Let the ruby bug be there, as long as we make sure nokogiri will always
    be linked with libxml2/libxslt/libexslt built from ports in the default
  2. Specify each static library in full path instead of using the -Wl,-Bs…

    knu authored and flavorjones committed May 13, 2014
    …tatic trick.
    This ensures that the correct library is linked independent of the
    library search path, where previously the wrong libxml2.a might have
    been picked if it had resided in the same directory as for
  3. Updating CHANGELOGs.

    flavorjones committed May 14, 2014
  4. Whitespace.

    flavorjones committed May 14, 2014
Commits on May 13, 2014
  1. add changelog.

    tenderlove committed May 13, 2014
    I should really translate this stuff. :'(
  2. Add support for building a universal binary.

    knu committed May 13, 2014
    If the target ruby is universal, the bundled libraries must be built
    with the same architecture specification as the ruby itself.
    This should fix #1096.
Commits on May 12, 2014
Commits on May 9, 2014
Commits on May 8, 2014
  1. Allow failures of jruby-20mode for now.

    knu committed May 8, 2014
    Looks like it is currently broken on Travis CI.
  2. Update changelogs.

    knu committed May 8, 2014
  3. CRuby: Add a node type check when adding a child node to another.

    knu committed May 8, 2014
    Now Node#add_child, #prepend_child, #replace, etc. will check if a node
    given is of an appropriate type as a child of the parent-to-be node,
    based on the DOM specification.
    Previously, it was possible to "add" a text node to another text node
    thanks to the special feature implemented in xmlAddChild().  However,
    because reparent_node_with() was not aware of it, such an operation
    could cause a SEGV.
    Our JRuby version does not support it anyway, so the CRuby counterpart
    now explicitly inhibits it from now on.
    This should fix #1092.