From mboxrd@z Thu Jan 1 00:00:00 1970 From: Karel Zak Date: Wed, 03 Dec 2008 10:49:50 +0000 Subject: [PATCH] volume_id: HPFS code clean up Message-Id: <1228301390-24744-1-git-send-email-kzak@redhat.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: linux-hotplug@vger.kernel.org * fix typo (hs vs. hbb) * set id->{version,usage,type} when all tests pass * be paranoid and don't use hs->version when "hs" source buffer was possibly modified by next volume_id_get_buffer() call. Signed-off-by: Karel Zak --- extras/volume_id/lib/hpfs.c | 10 ++++++---- 1 files changed, 6 insertions(+), 4 deletions(-) diff --git a/extras/volume_id/lib/hpfs.c b/extras/volume_id/lib/hpfs.c index ce9118d..0f0770f 100644 --- a/extras/volume_id/lib/hpfs.c +++ b/extras/volume_id/lib/hpfs.c @@ -79,6 +79,7 @@ int volume_id_probe_hpfs(struct volume_id *id, uint64_t off, uint64_t size) struct hpfs_super *hs; struct hpfs_spare_super *hss; struct hpfs_boot_block *hbb; + uint8_t version; info("probing at offset 0x%" PRIx64 "\n", off); @@ -94,13 +95,11 @@ int volume_id_probe_hpfs(struct volume_id *id, uint64_t off, uint64_t size) if (memcmp(hss->magic, "\x49\x18\x91\xf9", 4) != 0) return -1; - sprintf(id->type_version, "%u", hs->version); - volume_id_set_usage(id, VOLUME_ID_FILESYSTEM); - id->type = "hpfs"; + version = hs->version; /* if boot block looks valid, read label and uuid from there */ hbb = (struct hpfs_boot_block *) volume_id_get_buffer(id, off, 0x200); - if (hs = NULL) + if (hbb = NULL) return -1; if (memcmp(hbb->magic, "\x55\xaa", 2) = 0 && memcmp(hbb->sig_hpfs, "HPFS", 4) = 0 && @@ -109,6 +108,9 @@ int volume_id_probe_hpfs(struct volume_id *id, uint64_t off, uint64_t size) volume_id_set_label_string(id, hbb->vol_label, 11); volume_id_set_uuid(id, hbb->vol_serno, 0, UUID_DOS); } + sprintf(id->type_version, "%u", version); + volume_id_set_usage(id, VOLUME_ID_FILESYSTEM); + id->type = "hpfs"; return 0; } -- 1.5.6.5