[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 17:48:24 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:                     ready for review
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:              
====================================================================== 
Date Submitted:             2009-03-24 16:53 CDT
Last Modified:              2009-05-11 17:48 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)...
====================================================================== 

---------------------------------------------------------------------- 
 (0104561) svnbot (reporter) - 2009-05-11 17:48
 http://bugs.digium.com/view.php?id=14739#c104561 
---------------------------------------------------------------------- 
Repository: asterisk
Revision: 193755

U   branches/1.4/apps/app_voicemail.c

------------------------------------------------------------------------
r193755 | tilghman | 2009-05-11 17:48:23 -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=193755 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2009-05-11 17:48 svnbot         Note Added: 0104561                          
======================================================================




More information about the asterisk-bugs mailing list