RFR(S): 7178846: IterateThroughHeap: heap_iteration_callback passes a negative size for big array

Markus Grönlund markus.gronlund at oracle.com
Mon Jun 25 05:31:07 PDT 2012


Change looks good Staffan.

 

Thanks for fixing this

/Markus

 

From: Staffan Larsen [mailto:staffan at larsen.se] 
Sent: den 25 juni 2012 10:06
To: serviceability-dev serviceability-dev at openjdk.java.net
Subject: RFR(S): 7178846: IterateThroughHeap: heap_iteration_callback passes a negative size for big array

 

Please review the following fix.

 

Bug: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7178846

Webrev: http://cr.openjdk.java.net/~sla/7178846/webrev.01/

 

Class CallbackWrapper in jvmtiTagMap.cpp has a missing cast which leads to an integer overflow.

 

The code in question is

    _obj_size = _o->size() * wordSize;

 

_obj_size is a jlong

_o->size() is an int

wordSize is an int

 

Changing to:

    _obj_size = (jlong)_o->size() * wordSize;

 

fixes the overflow.

 

Thanks,

/Staffan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/serviceability-dev/attachments/20120625/350f5de5/attachment.html 


More information about the serviceability-dev mailing list