[asterisk-bugs] [Asterisk 0014682]: [patch] Race condition in ast_db_get()

Asterisk Bug Tracker noreply at bugs.digium.com
Tue Mar 17 00:54:18 CDT 2009


A NOTE has been added to this issue. 
====================================================================== 
http://bugs.digium.com/view.php?id=14682 
====================================================================== 
Reported By:                makoto
Assigned To:                tilghman
====================================================================== 
Project:                    Asterisk
Issue ID:                   14682
Category:                   Core/General
Reproducibility:            sometimes
Severity:                   minor
Priority:                   normal
Status:                     closed
Asterisk Version:           1.2.X 
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-16 20:07 CDT
Last Modified:              2009-03-17 00:54 CDT
====================================================================== 
Summary:                    [patch] Race condition in ast_db_get()
Description: 
ast_db_get() may retrieve a wrong value because the data are copied
to the variable value after dblock is unlocked.
The copy should be done before unlock.

This can be reproduced on our cutomer's environment which is based on
Asterisk 1.2.18. I don't test it on the 1.4.x yet, but I believe that
this can be reproduced also on Asterisk 1.4 or later.

Attached patch will fix the problem.

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

---------------------------------------------------------------------- 
 (0101844) svnbot (reporter) - 2009-03-17 00:54
 http://bugs.digium.com/view.php?id=14682#c101844 
---------------------------------------------------------------------- 
Repository: asterisk
Revision: 182453

_U  branches/1.6.2/
U   branches/1.6.2/main/db.c

------------------------------------------------------------------------
r182453 | tilghman | 2009-03-17 00:54:17 -0500 (Tue, 17 Mar 2009) | 21
lines

Merged revisions 182450 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/trunk

................
  r182450 | tilghman | 2009-03-17 00:51:54 -0500 (Tue, 17 Mar 2009) | 14
lines
  
  Merged revisions 182449 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r182449 | tilghman | 2009-03-17 00:50:52 -0500 (Tue, 17 Mar 2009) | 7
lines
    
    Fix race in astdb
    The underlying db1 implementation does not fully isolate the pages
retrieved
    from astdb, so the lock protecting accesses needs to be extended until
the
    copy from the shared memory structure is done.
    (closes issue http://bugs.digium.com/view.php?id=14682)
     Reported by: makoto
  ........
................

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

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

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2009-03-17 00:54 svnbot         Checkin                                      
2009-03-17 00:54 svnbot         Note Added: 0101844                          
======================================================================




More information about the asterisk-bugs mailing list