diff options
author | Jim Meyering <meyering@redhat.com> | 2007-12-21 15:39:09 +0100 |
---|---|---|
committer | Jim Meyering <meyering@redhat.com> | 2009-07-24 15:04:40 +0200 |
commit | 5f8bd453cbc2430e346cc40575029f36e2be50dc (patch) | |
tree | a8163f1b16df32d9556b0e5fb1395f876b58a19d /libparted/labels/rdb.c | |
parent | fff559b4e987d9404a788a817630c394af89db48 (diff) | |
download | parted-5f8bd453cbc2430e346cc40575029f36e2be50dc.tar.gz |
amiga: Avoid writing uninitialized 1.5KB after initial 512B.
Diffstat (limited to 'libparted/labels/rdb.c')
-rw-r--r-- | libparted/labels/rdb.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/libparted/labels/rdb.c b/libparted/labels/rdb.c index 7232366..8c77c6e 100644 --- a/libparted/labels/rdb.c +++ b/libparted/labels/rdb.c @@ -360,7 +360,11 @@ amiga_alloc (const PedDevice* dev) } rdb = disk->disk_specific; - memset(rdb, 0, sizeof(struct RigidDiskBlock)); + /* Upon failed assertion this does leak. That's fine, because + if the assertion fails, you have bigger problems than this leak. */ + PED_ASSERT(sizeof(*rdb) <= disk->dev->sector_size, return NULL); + + memset(rdb, 0, disk->dev->sector_size); rdb->rdb_ID = PED_CPU_TO_BE32 (IDNAME_RIGIDDISK); rdb->rdb_SummedLongs = PED_CPU_TO_BE32 (64); |