parent
5aae020fe0
commit
216141e583
@ -1 +1 @@
|
|||||||
6ff0ad86aceef6067af9d85bf7df181a86793c74 SOURCES/exfatprogs-1.1.3.tar.xz
|
75f25a4a0dce021019cd11e1aac59676118e82d4 SOURCES/exfatprogs-1.2.0.tar.xz
|
||||||
|
@ -1 +1 @@
|
|||||||
SOURCES/exfatprogs-1.1.3.tar.xz
|
SOURCES/exfatprogs-1.2.0.tar.xz
|
||||||
|
@ -1,10 +0,0 @@
|
|||||||
--- a/fsck/fsck.c 2021-11-17 10:13:55.729267514 +0100
|
|
||||||
+++ b/fsck/fsck.c 2022-05-10 12:19:36.397415101 +0200
|
|
||||||
@@ -796,6 +796,7 @@
|
|
||||||
if (exfat_read(exfat->blk_dev->dev_fd, boot_sect,
|
|
||||||
sizeof(*boot_sect), 0) != (ssize_t)sizeof(*boot_sect)) {
|
|
||||||
exfat_err("failed to read Main boot sector\n");
|
|
||||||
+ free(boot_sect);
|
|
||||||
return -EIO;
|
|
||||||
}
|
|
||||||
|
|
@ -1,83 +0,0 @@
|
|||||||
From 88a334ac2f98affcc526e861c2ed1b8bd2c34b3c Mon Sep 17 00:00:00 2001
|
|
||||||
From: Pavel Reichl <preichl@redhat.com>
|
|
||||||
Date: Wed, 11 May 2022 23:20:43 +0200
|
|
||||||
Subject: [PATCH] exfatprogs: fix some minor code issues
|
|
||||||
|
|
||||||
* Add checking of function return value
|
|
||||||
* Fix potentially overflowing expression
|
|
||||||
|
|
||||||
Signed-off-by: Pavel Reichl <preichl@redhat.com>
|
|
||||||
---
|
|
||||||
fsck/de_iter.c | 9 ++++++---
|
|
||||||
lib/libexfat.c | 13 ++++++++++---
|
|
||||||
2 files changed, 16 insertions(+), 6 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/fsck/de_iter.c b/fsck/de_iter.c
|
|
||||||
index bc95c49..587b027 100644
|
|
||||||
--- a/fsck/de_iter.c
|
|
||||||
+++ b/fsck/de_iter.c
|
|
||||||
@@ -82,6 +82,9 @@ static int read_ahead_next_blocks(struct exfat_de_iter *iter,
|
|
||||||
offset >= iter->ra_begin_offset) {
|
|
||||||
ret = get_next_clus(exfat, iter->parent,
|
|
||||||
p_clus, &ra_p_clus);
|
|
||||||
+ if (ret)
|
|
||||||
+ return ret;
|
|
||||||
+
|
|
||||||
if (ra_p_clus == EXFAT_EOF_CLUSTER)
|
|
||||||
return -EIO;
|
|
||||||
|
|
||||||
@@ -172,10 +175,10 @@ static ssize_t read_block(struct exfat_de_iter *iter, unsigned int block)
|
|
||||||
ret = get_next_clus(exfat, iter->parent,
|
|
||||||
prev_desc->p_clus, &desc->p_clus);
|
|
||||||
desc->offset = 0;
|
|
||||||
- if (!ret && desc->p_clus == EXFAT_EOF_CLUSTER)
|
|
||||||
- return EOF;
|
|
||||||
- else if (ret)
|
|
||||||
+ if (ret)
|
|
||||||
return ret;
|
|
||||||
+ else if (desc->p_clus == EXFAT_EOF_CLUSTER)
|
|
||||||
+ return EOF;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
diff --git a/lib/libexfat.c b/lib/libexfat.c
|
|
||||||
index 42e3fdc..ee48d3a 100644
|
|
||||||
--- a/lib/libexfat.c
|
|
||||||
+++ b/lib/libexfat.c
|
|
||||||
@@ -470,7 +470,12 @@ int exfat_set_volume_label(struct exfat_blk_dev *bd,
|
|
||||||
exfat_err("volume entry write failed: %d\n", errno);
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
- fsync(bd->dev_fd);
|
|
||||||
+
|
|
||||||
+ if (fsync(bd->dev_fd) == -1) {
|
|
||||||
+ exfat_err("failed to sync volume entry: %d, %s\n", errno,
|
|
||||||
+ strerror(errno));
|
|
||||||
+ return -1;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
exfat_info("new label: %s\n", label_input);
|
|
||||||
return 0;
|
|
||||||
@@ -479,7 +484,8 @@ int exfat_set_volume_label(struct exfat_blk_dev *bd,
|
|
||||||
int exfat_read_sector(struct exfat_blk_dev *bd, void *buf, unsigned int sec_off)
|
|
||||||
{
|
|
||||||
int ret;
|
|
||||||
- unsigned long long offset = sec_off * bd->sector_size;
|
|
||||||
+ unsigned long long offset =
|
|
||||||
+ (unsigned long long)sec_off * bd->sector_size;
|
|
||||||
|
|
||||||
ret = pread(bd->dev_fd, buf, bd->sector_size, offset);
|
|
||||||
if (ret < 0) {
|
|
||||||
@@ -493,7 +499,8 @@ int exfat_write_sector(struct exfat_blk_dev *bd, void *buf,
|
|
||||||
unsigned int sec_off)
|
|
||||||
{
|
|
||||||
int bytes;
|
|
||||||
- unsigned long long offset = sec_off * bd->sector_size;
|
|
||||||
+ unsigned long long offset =
|
|
||||||
+ (unsigned long long)sec_off * bd->sector_size;
|
|
||||||
|
|
||||||
bytes = pwrite(bd->dev_fd, buf, bd->sector_size, offset);
|
|
||||||
if (bytes != (int)bd->sector_size) {
|
|
||||||
--
|
|
||||||
2.35.3
|
|
||||||
|
|
Loading…
Reference in new issue