From: Zbigniew Jędrzejewski-Szmek Date: Sun, 14 Apr 2013 22:48:45 +0000 (-0400) Subject: udev/ata_id: zero out variable properly X-Git-Tag: v202~95 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=1e8e0a3221e27f7cc944dd6d734b95e86f67ce5c;ds=sidebyside udev/ata_id: zero out variable properly b8a2b0f76 'use initalization instead of explicit zeroing' introduced a bug where only the first sizeof(uint_t*) bytes would be zeroed out, instead of the whole array. --- diff --git a/src/udev/ata_id/ata_id.c b/src/udev/ata_id/ata_id.c index 4d30fd899..68a06b93b 100644 --- a/src/udev/ata_id/ata_id.c +++ b/src/udev/ata_id/ata_id.c @@ -334,11 +334,10 @@ static int disk_identify(struct udev *udev, int peripheral_device_type; int all_nul_bytes; int n; - int is_packet_device; + int is_packet_device = 0; /* init results */ - zero(out_identify); - is_packet_device = 0; + memzero(out_identify, 512); /* If we were to use ATA PASS_THROUGH (12) on an ATAPI device * we could accidentally blank media. This is because MMC's BLANK @@ -402,7 +401,7 @@ static int disk_identify(struct udev *udev, out: if (out_is_packet_device != NULL) - *out_is_packet_device = is_packet_device; + *out_is_packet_device = is_packet_device; return ret; }