#define AD_SIGNATURE 0x4450544D /* "DPTM" */
#define AD_MAGIC 0x37FC4D1E
-static int probe_adraid(blkid_probe pr, const struct blkid_idmag *mag)
+static int probe_adraid(blkid_probe pr,
+ const struct blkid_idmag *mag __attribute__((__unused__)))
{
uint64_t off;
struct adaptec_metadata *ad;
const struct data_stream *ds,
int64_t start, uint32_t length, int fs_le)
{
- if (start < FS64_TO_CPU(ds->max_direct_range, fs_le)) {
+ if (start < (int64_t) FS64_TO_CPU(ds->max_direct_range, fs_le)) {
int64_t br_len;
- int i;
+ size_t i;
for (i = 0; i < NUM_DIRECT_BLOCKS; i++) {
br_len = (int64_t) FS16_TO_CPU(ds->direct[i].len, fs_le)
else
start -= br_len;
}
- } else if (start < FS64_TO_CPU(ds->max_indirect_range, fs_le)) {
+ } else if (start < (int64_t) FS64_TO_CPU(ds->max_indirect_range, fs_le)) {
struct block_run *br;
int64_t max_br, br_len, i;
else
start -= br_len;
}
- } else if (start < FS64_TO_CPU(ds->max_double_indirect_range, fs_le)) {
+ } else if (start < (int64_t) FS64_TO_CPU(ds->max_double_indirect_range, fs_le)) {
struct block_run *br;
int64_t di_br_size, br_per_di_br, di_index, i_index;
- start -= FS64_TO_CPU(ds->max_indirect_range, fs_le);
+ start -= (int64_t) FS64_TO_CPU(ds->max_indirect_range, fs_le);
di_br_size = (int64_t) FS16_TO_CPU(ds->double_indirect.len,
fs_le) << FS32_TO_CPU(bs->block_shift, fs_le);
br_per_di_br = di_br_size / sizeof(struct block_run);
if (!bh)
return -1;
- if (FS32_TO_CPU(bh->magic, fs_le) != BPLUSTREE_MAGIC)
+ if ((int32_t) FS32_TO_CPU(bh->magic, fs_le) != BPLUSTREE_MAGIC)
return -1;
node_pointer = FS64_TO_CPU(bh->root_node_pointer, fs_le);
cmp = compare_keys(bn->name, keylengths, last, key, strlen(key),
fs_le);
if (cmp == 0) {
- if (FS64_TO_CPU(bn->overflow_link, fs_le)
+ if ((int64_t) FS64_TO_CPU(bn->overflow_link, fs_le)
== BPLUSTREE_NULL)
return FS64_TO_CPU(values[last], fs_le);
else
cmp = compare_keys(bn->name, keylengths, mid,
key, strlen(key), fs_le);
if (cmp == 0) {
- if (FS64_TO_CPU(bn->overflow_link,
+ if ((int64_t) FS64_TO_CPU(bn->overflow_link,
fs_le) == BPLUSTREE_NULL)
return FS64_TO_CPU(values[mid],
fs_le);
else
node_pointer = FS64_TO_CPU(values[mid], fs_le);
}
- } while (FS64_TO_CPU(bn->overflow_link, fs_le) != BPLUSTREE_NULL);
+ } while ((int64_t) FS64_TO_CPU(bn->overflow_link, fs_le)
+ != BPLUSTREE_NULL);
return 0;
}
+ FS16_TO_CPU(sd->data_size, fs_le) + 1);
} while ((intptr_t) sd < (intptr_t) bi
- + FS32_TO_CPU(bi->inode_size, fs_le)
- - sizeof(struct small_data));
+ + (int32_t) FS32_TO_CPU(bi->inode_size, fs_le)
+ - (int32_t) sizeof(struct small_data));
if (*uuid == 0
&& (FS32_TO_CPU(bi->attributes.allocation_group, fs_le) != 0
|| FS16_TO_CPU(bi->attributes.start, fs_le) != 0
uint8_t pad4[256]; /* 0xff */
} __attribute__((packed));
-static int probe_ddf(blkid_probe pr, const struct blkid_idmag *mag)
+static int probe_ddf(blkid_probe pr,
+ const struct blkid_idmag *mag __attribute__((__unused__)))
{
int hdrs[] = { 1, 257 };
- int i;
+ size_t i;
struct ddf_header *ddf = NULL;
char version[DDF_REV_LENGTH + 1];
uint64_t off, lba;
};
-static int probe_drbd(blkid_probe pr, const struct blkid_idmag *mag)
+static int probe_drbd(blkid_probe pr,
+ const struct blkid_idmag *mag __attribute__((__unused__)))
{
struct md_on_disk_08 *md;
off_t off;
}
-static int probe_jbd(blkid_probe pr, const struct blkid_idmag *mag)
+static int probe_jbd(blkid_probe pr,
+ const struct blkid_idmag *mag __attribute__((__unused__)))
{
struct ext2_super_block *es;
uint32_t fi;
return 0;
}
-static int probe_ext2(blkid_probe pr, const struct blkid_idmag *mag)
+static int probe_ext2(blkid_probe pr,
+ const struct blkid_idmag *mag __attribute__((__unused__)))
{
struct ext2_super_block *es;
uint32_t fc, frc, fi;
return 0;
}
-static int probe_ext3(blkid_probe pr, const struct blkid_idmag *mag)
+static int probe_ext3(blkid_probe pr,
+ const struct blkid_idmag *mag __attribute__((__unused__)))
{
struct ext2_super_block *es;
uint32_t fc, frc, fi;
}
-static int probe_ext4dev(blkid_probe pr, const struct blkid_idmag *mag)
+static int probe_ext4dev(blkid_probe pr,
+ const struct blkid_idmag *mag __attribute__((__unused__)))
{
struct ext2_super_block *es;
uint32_t fc, frc, fi;
return 0;
}
-static int probe_ext4(blkid_probe pr, const struct blkid_idmag *mag)
+static int probe_ext4(blkid_probe pr,
+ const struct blkid_idmag *mag __attribute__((__unused__)))
{
struct ext2_super_block *es;
uint32_t fc, frc, fi;
#define HPT45X_MAGIC_OK 0x5a7816f3
#define HPT45X_MAGIC_BAD 0x5a7816fd
-static int probe_highpoint45x(blkid_probe pr, const struct blkid_idmag *mag)
+static int probe_highpoint45x(blkid_probe pr,
+ const struct blkid_idmag *mag __attribute__((__unused__)))
{
struct hpt45x_metadata *hpt;
uint64_t off;
return 0;
}
-static int probe_highpoint37x(blkid_probe pr, const struct blkid_idmag *mag)
+static int probe_highpoint37x(blkid_probe pr,
+ const struct blkid_idmag *mag __attribute__((__unused__)))
{
if (!S_ISREG(pr->mode) && !blkid_probe_is_wholedisk(pr))
return -1;
static int ascii_eq_utf16be(unsigned char *ascii,
unsigned char *utf16, size_t len)
{
- int a, u;
+ size_t a, u;
for (a = 0, u = 0; u < len; a++, u += 2) {
if (utf16[u] != 0x0 || ascii[a] != utf16[u + 1])
#define ISW_SIGNATURE "Intel Raid ISM Cfg Sig. "
-static int probe_iswraid(blkid_probe pr, const struct blkid_idmag *mag)
+static int probe_iswraid(blkid_probe pr,
+ const struct blkid_idmag *mag __attribute__((__unused__)))
{
uint64_t off;
struct isw_metadata *isw;
js = blkid_probe_get_sb(pr, mag, struct jfs_super_block);
if (!js)
return -1;
- if (le32_to_cpu(js->js_bsize) != (1 << le16_to_cpu(js->js_l2bsize)))
+ if (le32_to_cpu(js->js_bsize) != (1U << le16_to_cpu(js->js_l2bsize)))
return 1;
- if (le32_to_cpu(js->js_pbsize) != (1 << le16_to_cpu(js->js_l2pbsize)))
+ if (le32_to_cpu(js->js_pbsize) != (1U << le16_to_cpu(js->js_l2pbsize)))
return 1;
if ((le16_to_cpu(js->js_l2bsize) - le16_to_cpu(js->js_l2pbsize)) !=
le16_to_cpu(js->js_l2bfactor))
#define JM_SIGNATURE "JM"
-static int probe_jmraid(blkid_probe pr, const struct blkid_idmag *mag)
+static int probe_jmraid(blkid_probe pr,
+ const struct blkid_idmag *mag __attribute__((__unused__)))
{
uint64_t off;
struct jm_metadata *jm;
size <<= 10; /* convert KiB to bytes */
- if (pr->size < size + MD_RESERVED_BYTES)
+ if (pr->size < 0 || (uint64_t) pr->size < size + MD_RESERVED_BYTES)
/* device is too small */
return 1;
- if (off < size)
+ if (off < 0 || (uint64_t) off < size)
/* no space before superblock */
return 1;
return -1;
if (le32_to_cpu(mdp1->magic) != MD_SB_MAGIC)
return -1;
- if (le32_to_cpu(mdp1->major_version) != 1)
+ if (le32_to_cpu(mdp1->major_version) != 1U)
return -1;
- if (le64_to_cpu(mdp1->super_offset) != off >> 9)
+ if (le64_to_cpu(mdp1->super_offset) != (uint64_t) off >> 9)
return -1;
if (blkid_probe_set_uuid(pr, (unsigned char *) mdp1->set_uuid) != 0)
return -1;
return 0;
}
-int probe_raid(blkid_probe pr, const struct blkid_idmag *mag)
+int probe_raid(blkid_probe pr,
+ const struct blkid_idmag *mag __attribute__((__unused__)))
{
const char *ver = NULL;
#define LSI_SIGNATURE "$XIDE$"
-static int probe_lsiraid(blkid_probe pr, const struct blkid_idmag *mag)
+static int probe_lsiraid(blkid_probe pr,
+ const struct blkid_idmag *mag __attribute__((__unused__)))
{
uint64_t off;
struct lsi_metadata *lsi;
#define NVIDIA_SIGNATURE "NVIDIA"
-static int probe_nvraid(blkid_probe pr, const struct blkid_idmag *mag)
+static int probe_nvraid(blkid_probe pr,
+ const struct blkid_idmag *mag __attribute__((__unused__)))
{
uint64_t off;
struct nv_metadata *nv;
#define PDC_CONFIG_OFF 0x1200
#define PDC_SIGNATURE "Promise Technology, Inc."
-static int probe_pdcraid(blkid_probe pr, const struct blkid_idmag *mag)
+static int probe_pdcraid(blkid_probe pr,
+ const struct blkid_idmag *mag __attribute__((__unused__)))
{
unsigned int i;
static unsigned int sectors[] = {
#define SILICON_MAGIC 0x2F000000
-static int probe_silraid(blkid_probe pr, const struct blkid_idmag *mag)
+static int probe_silraid(blkid_probe pr,
+ const struct blkid_idmag *mag __attribute__((__unused__)))
{
uint64_t off;
struct silicon_metadata *sil;
{
unsigned long *fltr;
struct blkid_chain *chn;
- int i;
+ size_t i;
if (!pr)
return -1;
*/
int blkid_known_fstype(const char *fstype)
{
- int i;
+ size_t i;
if (!fstype)
return 0;
*/
int blkid_superblocks_get_name(size_t idx, const char **name, int *usage)
{
- if (idx >= 0 && idx < ARRAY_SIZE(idinfos)) {
+ if (idx < ARRAY_SIZE(idinfos)) {
if (name)
*name = idinfos[idx]->name;
if (usage)
*/
static int superblocks_probe(blkid_probe pr, struct blkid_chain *chn)
{
- int i = 0;
+ size_t i;
if (!pr || chn->idx < -1)
return -1;
* is 1 byte */
goto nothing;
- i = chn->idx + 1;
+ i = chn->idx < 0 ? 0 : chn->idx + 1U;
for ( ; i < ARRAY_SIZE(idinfos); i++) {
const struct blkid_idinfo *id;
if ((id->usage & BLKID_USAGE_RAID) && blkid_probe_is_tiny(pr))
continue;
- DBG(DEBUG_LOWPROBE, printf("[%d] %s:\n", i, id->name));
+ DBG(DEBUG_LOWPROBE, printf("[%zd] %s:\n", i, id->name));
if (blkid_probe_get_idmag(pr, id, &off, &mag))
continue;
/* like uuid_is_null() from libuuid, but works with arbitrary size of UUID */
static int uuid_is_empty(const unsigned char *buf, size_t len)
{
- int i;
+ size_t i;
for (i = 0; i < len; i++)
if (buf[i])
/* convert to lower case (..be paranoid) */
if (!rc) {
- int i;
+ size_t i;
struct blkid_prval *v = __blkid_probe_get_value(pr,
blkid_probe_numof_values(pr));
if (v) {
/* Note that we don't probe for Coherent FS, this FS does not have
* magic string. (It requires to probe fname/fpack field..)
*/
-static int probe_sysv(blkid_probe pr, const struct blkid_idmag *mag)
+static int probe_sysv(blkid_probe pr,
+ const struct blkid_idmag *mag __attribute__((__unused__)))
{
struct sysv_super_block *sb;
int blocks[] = {0, 9, 15, 18};
- int i;
+ size_t i;
for (i = 0; i < ARRAY_SIZE(blocks); i++) {
int off = blocks[i] * SYSV_BLOCK_SIZE + SYSV_BLOCK_SIZE/2;
#define UDF_VSD_OFFSET 0x8000LL
-static int probe_udf(blkid_probe pr, const struct blkid_idmag *mag)
+static int probe_udf(blkid_probe pr,
+ const struct blkid_idmag *mag __attribute__((__unused__)))
{
struct volume_descriptor *vd;
struct volume_structure_descriptor *vsd;
#define UFS_MAGIC_SEC 0x00612195
#define UFS_MAGIC_4GB 0x05231994
-static int probe_ufs(blkid_probe pr, const struct blkid_idmag *mag)
+static int probe_ufs(blkid_probe pr,
+ const struct blkid_idmag *mag __attribute__((__unused__)))
{
int offsets[] = { 0, 8, 64, 256 };
- int mags[] = {
+ uint32_t mags[] = {
UFS2_MAGIC, UFS_MAGIC, UFS_MAGIC_FEA, UFS_MAGIC_LFN,
UFS_MAGIC_SEC, UFS_MAGIC_4GB
};
- int i;
+ size_t i;
uint32_t magic;
struct ufs_super_block *ufs;
for (i = 0; i < ARRAY_SIZE(offsets); i++) {
uint32_t magLE, magBE;
- int y;
+ size_t y;
ufs = (struct ufs_super_block *)
blkid_probe_get_buffer(pr,
uint64_t offset, uint32_t entries)
{
struct vfat_dir_entry *ent, *dir = NULL;
- int i;
+ uint32_t i;
DBG(DEBUG_LOWPROBE,
printf("\tlook for label in root-dir "
return cs == v->checksum;
}
-static int probe_viaraid(blkid_probe pr, const struct blkid_idmag *mag)
+static int probe_viaraid(blkid_probe pr,
+ const struct blkid_idmag *mag __attribute__((__unused__)))
{
uint64_t off;
struct via_metadata *v;
{
struct nvlist *nvl;
struct nvpair *nvp;
- int left = 4096;
+ size_t left = 4096;
int found = 0;
offset = (offset & ~(VDEV_LABEL_SIZE - 1)) + VDEV_LABEL_NVPAIR;
nvp->nvp_namelen = be32_to_cpu(nvp->nvp_namelen);
avail = nvp->nvp_size - nvp->nvp_namelen - sizeof(*nvp);
- nvdebug("left %u, nvp_size %u\n", left, nvp->nvp_size);
+ nvdebug("left %zd nvp_size %u\n", left, nvp->nvp_size);
if (left < nvp->nvp_size || avail < 0)
break;
"%"PRIu64, nvu_value);
found++;
}
- left -= nvp->nvp_size;
+ if (left > nvp->nvp_size)
+ left -= nvp->nvp_size;
+ else
+ left = 0;
nvp = (struct nvpair *)((char *)nvp + nvp->nvp_size);
}
}
/* ZFS has 128x1kB host-endian root blocks, stored in 2 areas at the start
* of the disk, and 2 areas at the end of the disk. Check only some of them...
* #4 (@ 132kB) is the first one written on a new filesystem. */
-static int probe_zfs(blkid_probe pr, const struct blkid_idmag *mag)
+static int probe_zfs(blkid_probe pr,
+ const struct blkid_idmag *mag __attribute__((__unused__)))
{
uint64_t swab_magic = swab64(UBERBLOCK_MAGIC);
struct zfs_uberblock *ub;