- Use int8_t type for the mftrecsz field in g_label_ntfs. char type
used previously caused probe failure on platforms where char is unsigned (e.g. ARM), as mftrecsz can be negative. Submitted by: Ilya Bakulin <ilya@bakulin.de> MFC after: 2 weeks
This commit is contained in:
parent
1392a0b021
commit
77f8606428
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=250264
@ -86,7 +86,7 @@ struct ntfs_bootfile {
|
||||
uint64_t bf_spv;
|
||||
uint64_t bf_mftcn;
|
||||
uint64_t bf_mftmirrcn;
|
||||
uint8_t bf_mftrecsz;
|
||||
int8_t bf_mftrecsz;
|
||||
uint32_t bf_ibsz;
|
||||
uint32_t bf_volsn;
|
||||
} __packed;
|
||||
@ -100,7 +100,8 @@ g_label_ntfs_taste(struct g_consumer *cp, char *label, size_t size)
|
||||
struct ntfs_attr *atr;
|
||||
off_t voloff;
|
||||
char *filerecp, *ap;
|
||||
char mftrecsz, vnchar;
|
||||
int8_t mftrecsz;
|
||||
char vnchar;
|
||||
int recsize, j;
|
||||
|
||||
g_topology_assert_not();
|
||||
@ -113,7 +114,7 @@ g_label_ntfs_taste(struct g_consumer *cp, char *label, size_t size)
|
||||
if (bf == NULL || strncmp(bf->bf_sysid, "NTFS ", 8) != 0)
|
||||
goto done;
|
||||
|
||||
mftrecsz = (char)bf->bf_mftrecsz;
|
||||
mftrecsz = bf->bf_mftrecsz;
|
||||
recsize = (mftrecsz > 0) ? (mftrecsz * bf->bf_bps * bf->bf_spc) : (1 << -mftrecsz);
|
||||
if (recsize == 0 || recsize % pp->sectorsize != 0)
|
||||
goto done;
|
||||
|
Loading…
Reference in New Issue
Block a user