#1430: Buffer overrun in vector/diglib dig__fread_port_L with big-endian 
negative
values on LP64 systems
---------------------------------------------+------------------------------
 Reporter:  rroliver                         |       Owner:  grass-dev@…        
      
     Type:  defect                           |      Status:  new                
      
 Priority:  normal                           |   Milestone:                     
      
Component:  Vector                           |     Version:  svn-trunk          
      
 Keywords:  diglib portable LP64 big-endian  |    Platform:  Unspecified        
      
      Cpu:  All                              |  
---------------------------------------------+------------------------------

Comment(by mmetz):

 Replying to [ticket:1430 rroliver]:
 > The code in dig!__fread_port_L is broken for handling big endian
 negative numbers on systems where sizeof(long) != PORT_LONG.
 >
 > Presently the code fails to negate the value and will write 4 bytes past
 the end of the buffer.
 >
 > Problem exists for all grass versions through to trunk...
 >
 The patch seems to make sense but there are more subtle bugs in
 lib/diglib/portable.c related to big endian systems. Can you test grass7
 (trunk)? I have applied your patch plus some more modifications in trunk
 in r47992. After testing, they can be backported to 6.5. and 6.4.2.

 Markus M

-- 
Ticket URL: <http://trac.osgeo.org/grass/ticket/1430#comment:1>
GRASS GIS <http://grass.osgeo.org>

_______________________________________________
grass-dev mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/grass-dev

Reply via email to