[asterisk-bugs] [Asterisk 0014739]: [patch] Voicemail(ARGS) is limtted to 1024 characters, large 'blast' groups are silently left off
Asterisk Bug Tracker
noreply at bugs.digium.com
Mon May 11 18:23:19 CDT 2009
A NOTE has been added to this issue.
======================================================================
http://bugs.digium.com/view.php?id=14739
======================================================================
Reported By: p_lindheimer
Assigned To: tilghman
======================================================================
Project: Asterisk
Issue ID: 14739
Category: Applications/app_voicemail
Reproducibility: have not tried
Severity: major
Priority: normal
Status: closed
Target Version: 1.6.3.0
Asterisk Version: SVN
Regression: No
SVN Branch (only for SVN checkouts, not tarball releases): N/A
SVN Revision (number only!):
Request Review:
Resolution: fixed
Fixed in Version:
======================================================================
Date Submitted: 2009-03-24 16:53 CDT
Last Modified: 2009-05-11 18:23 CDT
======================================================================
Summary: [patch] Voicemail(ARGS) is limtted to 1024
characters, large 'blast' groups are silently left off
Description:
When sending voicemail to several users in the supported format:
Voicemail(200 at default&201 at default& ... 299 at default,s)
the app_voicemail truncates the resulting parameter to 1024 characters. In
FreePBX, there is a blast group that accumulates these into a channel
variable. Therefore, the size that should be allowed should be at least
equivalent to the max size of a channel variable. (Or larger if a command
line can be longer). Unless of course there are other limitations...
In FreePBX, this is called as:
exten => 1,1,VoiceMail(${GRPLIST:1},s)
where the list was previously accumulated in GRPLIST.
The following change reportedly fixes the issue until the new limitation
is met:
--- app_voicemail.c (revision 184036)
+++ app_voicemail.c (working copy)
@@ -4962,7 +4962,7 @@
char fmt[80];
char *context;
char ecodes[17] = "#";
- char tmp[1024] = "";
+ char tmp[2048] = "";
char *tmpptr;
struct ast_vm_user *vmu;
struct ast_vm_user svm;
So it would seem that either a much larger tmp variable should be created
to address very large lists, or it should be dynamically allocated based on
the sizeof the ext argument that is passed to it.
(note - I marked it 'major' because the dialplan is silently corrupting
the data, seemed like it was more than minor, less than major)...
======================================================================
----------------------------------------------------------------------
(0104565) svnbot (reporter) - 2009-05-11 18:23
http://bugs.digium.com/view.php?id=14739#c104565
----------------------------------------------------------------------
Repository: asterisk
Revision: 193781
_U branches/1.6.0/
U branches/1.6.0/apps/app_voicemail.c
------------------------------------------------------------------------
r193781 | tilghman | 2009-05-11 18:23:19 -0500 (Mon, 11 May 2009) | 32
lines
Recorded merge of revisions 193756 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk
................
r193756 | tilghman | 2009-05-11 17:50:47 -0500 (Mon, 11 May 2009) | 25
lines
Recorded merge of revisions 193755 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r193755 | tilghman | 2009-05-11 17:48:20 -0500 (Mon, 11 May 2009) | 18
lines
Move 300 bytes around on the stack, to make more room for an extension
buffer.
This allows more concurrent extensions to be copied for a single
voicemail,
without creating a possibility of upsetting existing users, where a
dialplan
could run out of stack space where it had run fine before.
Alternatively,
we could have allocated off the heap, but that is a larger change and
would
have increased the chance for instability introduced by this change.
This is really solved starting in 1.6.0.11, as the use of an ast_str
buffer
allows an unlimited number of extensions (up to available memory). We
additionally create a new warning message when the buffer length is
exceeded,
permitting administrators to see an issue after the fact, whereas
previously
the list was silently truncated.
(closes issue http://bugs.digium.com/view.php?id=14739)
Reported by: p_lindheimer
Patches:
20090417__bug14739.diff.txt uploaded by tilghman (license 14)
Tested by: p_lindheimer
........
................
------------------------------------------------------------------------
http://svn.digium.com/view/asterisk?view=rev&revision=193781
Issue History
Date Modified Username Field Change
======================================================================
2009-05-11 18:23 svnbot Checkin
2009-05-11 18:23 svnbot Note Added: 0104565
======================================================================
More information about the asterisk-bugs
mailing list