diff options
author | Mike Frysinger | 2012-10-10 06:29:54 +0200 |
---|---|---|
committer | Karel Zak | 2012-10-10 11:23:25 +0200 |
commit | 2d609d9945b119dfa9ad7d9d73a38068a35fa5f0 (patch) | |
tree | 27d4c1f7673733abe7a36cf8338c4a54903249a5 /fdisks/sfdisk.c | |
parent | md5: fix strict aliasing warnings (diff) | |
download | kernel-qcow2-util-linux-2d609d9945b119dfa9ad7d9d73a38068a35fa5f0.tar.gz kernel-qcow2-util-linux-2d609d9945b119dfa9ad7d9d73a38068a35fa5f0.tar.xz kernel-qcow2-util-linux-2d609d9945b119dfa9ad7d9d73a38068a35fa5f0.zip |
sfdisk: fix aliasing warnings
Compiles down to the same code.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'fdisks/sfdisk.c')
-rw-r--r-- | fdisks/sfdisk.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/fdisks/sfdisk.c b/fdisks/sfdisk.c index 3450f5208..e59d52a2b 100644 --- a/fdisks/sfdisk.c +++ b/fdisks/sfdisk.c @@ -1561,12 +1561,14 @@ msdos_partition(char *dev, int fd, unsigned long start, struct disk_desc *z) { return 0; } - unsigned int sig = *(unsigned short *)(s->data + 2); - if (sig <= 0x1ae - && *(unsigned short *)(s->data + sig) == 0x55aa - && (1 & *(unsigned char *)(s->data + sig + 2))) { + unsigned short sig, magic; + memcpy(&sig, s->data + 2, sizeof(sig)); + if (sig <= 0x1ae) { + memcpy(&magic, s->data + sig, sizeof(magic)); + if (magic == 0x55aa && (1 & *(unsigned char *)(s->data + sig + 2))) { warnx(_("DM6 signature found - giving up\n")); return 0; + } } for (pno = 0; pno < 4; pno++, cp += sizeof(struct partition)) { |