]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
sfdisk: fix aliasing warnings
authorMike Frysinger <vapier@gentoo.org>
Wed, 10 Oct 2012 04:29:54 +0000 (00:29 -0400)
committerKarel Zak <kzak@redhat.com>
Wed, 10 Oct 2012 09:23:25 +0000 (11:23 +0200)
Compiles down to the same code.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
fdisks/sfdisk.c

index 3450f5208a783a334ab48034362ced506aa06fe3..e59d52a2b15efd256be25dd1df979bbf9e13a2bb 100644 (file)
@@ -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)) {