Skip to content
Snippets Groups Projects
  1. Jun 11, 2009
  2. Jun 10, 2009
  3. Jun 08, 2009
  4. May 13, 2009
    • Tom Lane's avatar
      Rewrite xml.c's memory management (yet again). Give up on the idea of · 23543c73
      Tom Lane authored
      redirecting libxml's allocations into a Postgres context.  Instead, just let
      it use malloc directly, and add PG_TRY blocks as needed to be sure we release
      libxml data structures in error recovery code paths.  This is ugly but seems
      much more likely to play nicely with third-party uses of libxml, as seen in
      recent trouble reports about using Perl XML facilities in pl/perl and bug
      #4774 about contrib/xml2.
      
      I left the code for allocation redirection in place, but it's only
      built/used if you #define USE_LIBXMLCONTEXT.  This is because I found it
      useful to corral libxml's allocations in a palloc context when hunting
      for libxml memory leaks, and we're surely going to have more of those
      in the future with this type of approach.  But we don't want it turned on
      in a normal build because it breaks exactly what we need to fix.
      
      I have not re-indented most of the code sections that are now wrapped
      by PG_TRY(); that's for ease of review.  pg_indent will fix it.
      
      This is a pre-existing bug in 8.3, but I don't dare back-patch this change
      until it's gotten a reasonable amount of field testing.
      23543c73
  5. May 12, 2009
    • Tom Lane's avatar
      Fix intratransaction memory leaks in xml_recv, xmlconcat, xmlroot, and · 546454f8
      Tom Lane authored
      xml_parse, all arising from the same sloppy usage of parse_xml_decl.
      The original coding had that function returning its output string
      parameters in the libxml context, which is long-lived, and all but one
      of its callers neglected to free the strings afterwards.  The easiest
      and most bulletproof fix is to return the strings in the local palloc
      context instead, since that's short-lived.  This was only costing a
      dozen or two bytes per function call, but that adds up fast if the
      function is called repeatedly ...
      
      Noted while poking at the more general problem of what to do with our
      libxml memory allocation hooks.  Back-patch to 8.3, which has the
      identical coding.
      546454f8
  6. Apr 08, 2009
  7. Mar 27, 2009
  8. Mar 23, 2009
  9. Jan 07, 2009
  10. Jan 01, 2009
  11. Nov 10, 2008
  12. Oct 29, 2008
  13. Oct 14, 2008
  14. Oct 09, 2008
  15. Sep 16, 2008
  16. Aug 26, 2008
  17. Jul 03, 2008
  18. May 12, 2008
    • Alvaro Herrera's avatar
      Restructure some header files a bit, in particular heapam.h, by removing some · f8c4d7db
      Alvaro Herrera authored
      unnecessary #include lines in it.  Also, move some tuple routine prototypes and
      macros to htup.h, which allows removal of heapam.h inclusion from some .c
      files.
      
      For this to work, a new header file access/sysattr.h needed to be created,
      initially containing attribute numbers of system columns, for pg_dump usage.
      
      While at it, make contrib ltree, intarray and hstore header files more
      consistent with our header style.
      f8c4d7db
  19. May 04, 2008
  20. Apr 04, 2008
  21. Mar 25, 2008
    • Tom Lane's avatar
      Simplify and standardize conversions between TEXT datums and ordinary C · 220db7cc
      Tom Lane authored
      strings.  This patch introduces four support functions cstring_to_text,
      cstring_to_text_with_len, text_to_cstring, and text_to_cstring_buffer, and
      two macros CStringGetTextDatum and TextDatumGetCString.  A number of
      existing macros that provided variants on these themes were removed.
      
      Most of the places that need to make such conversions now require just one
      function or macro call, in place of the multiple notational layers that used
      to be needed.  There are no longer any direct calls of textout or textin,
      and we got most of the places that were using handmade conversions via
      memcpy (there may be a few still lurking, though).
      
      This commit doesn't make any serious effort to eliminate transient memory
      leaks caused by detoasting toasted text objects before they reach
      text_to_cstring.  We changed PG_GETARG_TEXT_P to PG_GETARG_TEXT_PP in a few
      places where it was easy, but much more could be done.
      
      Brendan Jurd and Tom Lane
      220db7cc
  22. Mar 24, 2008
  23. Mar 01, 2008
    • Tom Lane's avatar
      Disable the undocumented xmlvalidate() function, which was unintentionally · 3bf822c4
      Tom Lane authored
      left in the code though it was not meant to be provided.  It represents a
      security hole because unprivileged users could use it to look at (at least the
      first line of) any file readable by the backend.  Fortunately, this is only
      possible if the backend was built with XML support, so the damage is at least
      mitigated; and 8.3 probably hasn't propagated into any security-critical uses
      yet anyway.  Per report from Sergey Burladyan.
      3bf822c4
  24. Jan 15, 2008
    • Tom Lane's avatar
      Revise memory management for libxml calls. Instead of keeping libxml's data · ac12412e
      Tom Lane authored
      in whichever context happens to be current during a call of an xml.c function,
      use a dedicated context that will not go away until we explicitly delete it
      (which we do at transaction end or subtransaction abort).  This makes recovery
      after an error much simpler --- we don't have to individually delete the data
      structures created by libxml.  Also, we need to initialize and cleanup libxml
      only once per transaction (if there's no error) instead of once per function
      call, so it should be a bit faster.  We'll need to keep an eye out for
      intra-transaction memory leaks, though.  Alvaro and Tom.
      ac12412e
  25. Jan 12, 2008
  26. Jan 01, 2008
  27. Nov 28, 2007
  28. Nov 27, 2007
  29. Nov 25, 2007
  30. Nov 21, 2007
  31. Nov 15, 2007
  32. Nov 10, 2007
  33. Nov 09, 2007
  34. Nov 08, 2007
Loading