[asterisk-bugs] [Asterisk 0014670]: FILE function reads 1 character less than specified in length

Asterisk Bug Tracker noreply at bugs.digium.com
Mon Mar 16 12:33:40 CDT 2009


The following issue has been RESOLVED. 
====================================================================== 
http://bugs.digium.com/view.php?id=14670 
====================================================================== 
Reported By:                BMC
Assigned To:                tilghman
====================================================================== 
Project:                    Asterisk
Issue ID:                   14670
Category:                   Functions/func_env
Reproducibility:            always
Severity:                   major
Priority:                   normal
Status:                     resolved
Asterisk Version:           1.6.0.6 
Regression:                 No 
SVN Branch (only for SVN checkouts, not tarball releases):  trunk 
SVN Revision (number only!):  
Request Review:              
Resolution:                 fixed
Fixed in Version:           
====================================================================== 
Date Submitted:             2009-03-15 13:46 CDT
Last Modified:              2009-03-16 12:33 CDT
====================================================================== 
Summary:                    FILE function reads 1 character less than specified
in length
Description: 
The replacement of ReadFile does not work as specified:

cat /tmp/test.txt
123456789

exten => s,n,ReadFile(VAR1=/tmp/test.txt,2);
exten => s,n,NoOp(VAR1=${VAR1});
exten => s,n,Set(VAR2=${FILE(/tmp/test.txt,0,2)});
exten => s,n,NoOp(VAR2=${VAR2});

    -- Executing [s at test:2] ReadFile("mISDN/3-u46",
"VAR1=/tmp/test.txt,2") in new stack
    -- Executing [s at test:3] NoOp("mISDN/3-u46", "VAR1=12") in new stack
    -- Executing [s at test:4] Set("mISDN/3-u46", "VAR2=1") in new stack
    -- Executing [s at test:5] NoOp("mISDN/3-u46", "VAR2=1") in new stack


====================================================================== 

---------------------------------------------------------------------- 
 (0101807) svnbot (reporter) - 2009-03-16 12:33
 http://bugs.digium.com/view.php?id=14670#c101807 
---------------------------------------------------------------------- 
Repository: asterisk
Revision: 182278

U   trunk/funcs/func_env.c

------------------------------------------------------------------------
r182278 | tilghman | 2009-03-16 12:33:39 -0500 (Mon, 16 Mar 2009) | 7
lines

Fix an off-by-one error in the FILE() function, and extend FILE()'s length
parameter to work like variable substitution.
Previously, FILE() returned one less character than specified, due to the
terminating NULL.  Both the offset and length parameters now behave
identically to the way variable substitution offsets and lengths also
work.
(closes issue http://bugs.digium.com/view.php?id=14670)
 Reported by: BMC

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=182278 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2009-03-16 12:33 svnbot         Checkin                                      
2009-03-16 12:33 svnbot         Note Added: 0101807                          
2009-03-16 12:33 svnbot         Status                   assigned => resolved
2009-03-16 12:33 svnbot         Resolution               open => fixed       
======================================================================




More information about the asterisk-bugs mailing list