Author: tqh Date: 2010-12-28 12:23:40 +0100 (Tue, 28 Dec 2010) New Revision: 39974 Changeset: http://dev.haiku-os.org/changeset/39974 Modified: haiku/trunk/src/system/runtime_loader/images.cpp Log: While the functions didn't use the delta for i==0 accessing arrays at [0 - 1] can't be good. CID 3197. Modified: haiku/trunk/src/system/runtime_loader/images.cpp =================================================================== --- haiku/trunk/src/system/runtime_loader/images.cpp 2010-12-28 10:46:42 UTC (rev 39973) +++ haiku/trunk/src/system/runtime_loader/images.cpp 2010-12-28 11:23:40 UTC (rev 39974) @@ -301,8 +301,8 @@ uint32 regionAddressSpecifier; get_image_region_load_address(image, i, - loadAddress - image->regions[i - 1].vmstart, fixed, - loadAddress, regionAddressSpecifier); + i > 0 ? loadAddress - image->regions[i - 1].vmstart : loadAddress, + fixed, loadAddress, regionAddressSpecifier); if (i == 0) { reservedAddress = loadAddress; addressSpecifier = regionAddressSpecifier; @@ -333,8 +333,9 @@ snprintf(regionName, sizeof(regionName), "%s_seg%lu%s", baseName, i, (image->regions[i].flags & RFLAG_RW) ? "rw" : "ro"); - get_image_region_load_address(image, i, image->regions[i - 1].delta, - fixed, loadAddress, addressSpecifier); + get_image_region_load_address(image, i, + i > 0 ? image->regions[i - 1].delta : 0, fixed, loadAddress, + addressSpecifier); // If the image position is arbitrary, we must let it point to the start // of the reserved address range.