Skip to content
Snippets Groups Projects
  • Tom Lane's avatar
    a223b9e3
    Fix two low-probability memory leaks in regular expression parsing. · a223b9e3
    Tom Lane authored
    If pg_regcomp failed after having invoked markst/cleanst, it would leak any
    "struct subre" nodes it had created.  (We've already detected all regex
    syntax errors at that point, so the only likely causes of later failure
    would be query cancel or out-of-memory.)  To fix, make sure freesrnode
    knows the difference between the pre-cleanst and post-cleanst cleanup
    procedures.  Add some documentation of this less-than-obvious point.
    
    Also, newlacon did the wrong thing with an out-of-memory failure from
    realloc(), so that the previously allocated array would be leaked.
    
    Both of these are pretty low-probability scenarios, but a bug is a bug,
    so patch all the way back.
    
    Per bug #10976 from Arthur O'Dwyer.
    a223b9e3
    History
    Fix two low-probability memory leaks in regular expression parsing.
    Tom Lane authored
    If pg_regcomp failed after having invoked markst/cleanst, it would leak any
    "struct subre" nodes it had created.  (We've already detected all regex
    syntax errors at that point, so the only likely causes of later failure
    would be query cancel or out-of-memory.)  To fix, make sure freesrnode
    knows the difference between the pre-cleanst and post-cleanst cleanup
    procedures.  Add some documentation of this less-than-obvious point.
    
    Also, newlacon did the wrong thing with an out-of-memory failure from
    realloc(), so that the previously allocated array would be leaked.
    
    Both of these are pretty low-probability scenarios, but a bug is a bug,
    so patch all the way back.
    
    Per bug #10976 from Arthur O'Dwyer.