* CID 145 and CID 146: Use delete[] to delete the arrays.

* Also use new(std::nothrow) for the allocation.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27490 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Michael Lotz
2008-09-13 18:22:44 +00:00
parent 6b9d141359
commit 95d570323b
+8 -8
View File
@@ -382,7 +382,7 @@ LegacyBootDrive::SaveMasterBootRecord(BMessage* settings, BFile* file)
return B_IO_ERROR;
ssize_t size = kBlockSize * kNumberOfBootLoaderBlocks;
uint8* buffer = new uint8[size];
uint8* buffer = new(std::nothrow) uint8[size];
if (buffer == NULL) {
close(fd);
return B_NO_MEMORY;
@@ -391,20 +391,20 @@ LegacyBootDrive::SaveMasterBootRecord(BMessage* settings, BFile* file)
status_t status = _ReadBlocks(fd, buffer, size);
if (status != B_OK) {
close(fd);
delete buffer;
delete[] buffer;
return B_IO_ERROR;
}
MasterBootRecord* mbr = (MasterBootRecord*)buffer;
if (!_IsValid(mbr)) {
close(fd);
delete buffer;
delete[] buffer;
return B_BAD_VALUE;
}
if (file->Write(buffer, size) != size)
status = B_IO_ERROR;
delete buffer;
delete[] buffer;
close(fd);
return status;
}
@@ -434,7 +434,7 @@ LegacyBootDrive::RestoreMasterBootRecord(BMessage* settings, BFile* file)
lseek(fd, 0, SEEK_SET);
size_t size = kBlockSize * kNumberOfBootLoaderBlocks;
uint8* buffer = new uint8[size];
uint8* buffer = new(std::nothrow) uint8[size];
if (buffer == NULL) {
close(fd);
return B_NO_MEMORY;
@@ -442,21 +442,21 @@ LegacyBootDrive::RestoreMasterBootRecord(BMessage* settings, BFile* file)
if (file->Read(buffer, size) != (ssize_t)size) {
close(fd);
delete buffer;
delete[] buffer;
return B_IO_ERROR;
}
MasterBootRecord* newMBR = (MasterBootRecord*)buffer;
if (!_IsValid(newMBR)) {
close(fd);
delete buffer;
delete[] buffer;
return B_BAD_VALUE;
}
_CopyPartitionTable(newMBR, &oldMBR);
status_t status = _WriteBlocks(fd, buffer, size);
delete buffer;
delete[] buffer;
close(fd);
return status;
}