]> git.ipfire.org Git - thirdparty/asterisk.git/commit
strings.h: Fix issues with escape string functions. 14/914/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 00:56:32 +0000 (19:56 -0500)
commite31cb6b2484bbf5726c59b263f13b995e60d537d
treed5c264e0342e37d3633147785f476b8a8fcaa779
parent243c0d1609d193130f24d4586070036fdb900f0f
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