summaryrefslogtreecommitdiffstats
path: root/shlibs/blkid/src/partitions
diff options
context:
space:
mode:
authorKarel Zak2010-10-15 01:32:13 +0200
committerKarel Zak2010-10-15 01:32:13 +0200
commitc76e710bc70bb89971c44e971e62793f34953d71 (patch)
tree4940d0d6d613485f60e78794b0cab4bcf65c3777 /shlibs/blkid/src/partitions
parentpartx: integrate support for mac and sun partitions, based on kpartx. (diff)
downloadkernel-qcow2-util-linux-c76e710bc70bb89971c44e971e62793f34953d71.tar.gz
kernel-qcow2-util-linux-c76e710bc70bb89971c44e971e62793f34953d71.tar.xz
kernel-qcow2-util-linux-c76e710bc70bb89971c44e971e62793f34953d71.zip
libblkid: consolidate magic strings detection code
Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'shlibs/blkid/src/partitions')
-rw-r--r--shlibs/blkid/src/partitions/partitions.c25
1 files changed, 1 insertions, 24 deletions
diff --git a/shlibs/blkid/src/partitions/partitions.c b/shlibs/blkid/src/partitions/partitions.c
index d6abc203d..5b34d037e 100644
--- a/shlibs/blkid/src/partitions/partitions.c
+++ b/shlibs/blkid/src/partitions/partitions.c
@@ -515,35 +515,12 @@ int blkid_is_nested_dimension(blkid_partition par,
static int idinfo_probe(blkid_probe pr, const struct blkid_idinfo *id)
{
const struct blkid_idmag *mag;
- int hasmag = 0;
int rc = 1; /* = nothing detected */
if (pr->size <= 0 || (id->minsz && id->minsz > pr->size))
goto nothing; /* the device is too small */
- mag = id->magics ? &id->magics[0] : NULL;
-
- /* try to detect by magic string */
- while(mag && mag->magic) {
- int idx;
- unsigned char *buf;
-
- idx = mag->kboff + (mag->sboff >> 10);
- buf = blkid_probe_get_buffer(pr, idx << 10, 1024);
-
- if (buf && !memcmp(mag->magic,
- buf + (mag->sboff & 0x3ff), mag->len)) {
- DBG(DEBUG_LOWPROBE, printf(
- "%s: magic sboff=%u, kboff=%ld\n",
- id->name, mag->sboff, mag->kboff));
- hasmag = 1;
- break;
- }
- mag++;
- }
-
- if (hasmag == 0 && id->magics && id->magics[0].magic)
- /* magic string(s) defined, but not found */
+ if (blkid_probe_get_idmag(pr, id, NULL, &mag))
goto nothing;
/* final check by probing function */