]> git.ipfire.org Git - thirdparty/asterisk.git/commit
strings.h: Fix issues with escape string functions. 19/919/1
authorRichard Mudgett <rmudgett@digium.com>
Wed, 15 Jul 2015 20:40:32 +0000 (15:40 -0500)
committerRichard Mudgett <rmudgett@digium.com>
Thu, 16 Jul 2015 17:27:26 +0000 (12:27 -0500)
commit147b86a8d1a63b113673d8c13cc6b3936c809450
tree959092aeb49d3056b03da8b5ed453bc896a97769
parent23b7b109c2e41702efe104d06953a32c307a6adb
strings.h: Fix issues with escape string functions.

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
include/asterisk/strings.h
main/utils.c
tests/test_strings.c