Skip to content
Snippets Groups Projects
  • Richard Mudgett's avatar
    b34c4528
    strings.h: Fix issues with escape string functions. · b34c4528
    Richard Mudgett authored
    Fixes for issues with the ASTERISK-24934 patch.
    
    * Fixed ast_escape_alloc() and ast_escape_c_alloc() if the s parameter is
    an empty string.  If it were an empty string the functions returned NULL
    as if there were a memory allocation failure.  This failure caused the AMI
    VarSet event to not get posted if the new value was an empty string.
    
    * Fixed dest buffer overwrite potential in ast_escape() and
    ast_escape_c().  If the dest buffer size is smaller than the space needed
    by the escaped s parameter string then the dest buffer would be written
    beyond the end by the nul string terminator.  The num parameter was really
    the dest buffer size parameter so I renamed it to size.
    
    * Made nul terminate the dest buffer if the source string parameter s was
    an empty string in ast_escape() and ast_escape_c().
    
    * Updated ast_escape() and ast_escape_c() doxygen function description
    comments to reflect reality.
    
    * Added some more unit test cases to /main/strings/escape to cover the
    empty source string issues.
    
    ASTERISK-25255 #close
    Reported by: Richard Mudgett
    
    Change-Id: Id77fc704600ebcce81615c1200296f74de254104
    b34c4528
    History
    strings.h: Fix issues with escape string functions.
    Richard Mudgett authored
    Fixes for issues with the ASTERISK-24934 patch.
    
    * Fixed ast_escape_alloc() and ast_escape_c_alloc() if the s parameter is
    an empty string.  If it were an empty string the functions returned NULL
    as if there were a memory allocation failure.  This failure caused the AMI
    VarSet event to not get posted if the new value was an empty string.
    
    * Fixed dest buffer overwrite potential in ast_escape() and
    ast_escape_c().  If the dest buffer size is smaller than the space needed
    by the escaped s parameter string then the dest buffer would be written
    beyond the end by the nul string terminator.  The num parameter was really
    the dest buffer size parameter so I renamed it to size.
    
    * Made nul terminate the dest buffer if the source string parameter s was
    an empty string in ast_escape() and ast_escape_c().
    
    * Updated ast_escape() and ast_escape_c() doxygen function description
    comments to reflect reality.
    
    * Added some more unit test cases to /main/strings/escape to cover the
    empty source string issues.
    
    ASTERISK-25255 #close
    Reported by: Richard Mudgett
    
    Change-Id: Id77fc704600ebcce81615c1200296f74de254104