Browse Source

initial package creation

Signed-off-by: Toshaan Bharvani <toshaan@powerel.org>
master
Toshaan Bharvani 1 year ago
commit
658f018671
  1. 10
      SOURCES/0001-fsck-fix-memory-leak.patch
  2. 83
      SOURCES/0002.patch
  3. 63
      SPECS/exfatprogs.spec

10
SOURCES/0001-fsck-fix-memory-leak.patch

@ -0,0 +1,10 @@ @@ -0,0 +1,10 @@
--- 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;
}

83
SOURCES/0002.patch

@ -0,0 +1,83 @@ @@ -0,0 +1,83 @@
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

63
SPECS/exfatprogs.spec

@ -0,0 +1,63 @@ @@ -0,0 +1,63 @@
Name: exfatprogs
Version: 1.1.3
Release: 3%{?dist}
Summary: Userspace utilities for exFAT filesystems
License: GPLv2
URL: https://github.com/%{name}/%{name}

Source0: %{url}/releases/download/%{version}/%{name}-%{version}.tar.xz
Patch0: 0001-fsck-fix-memory-leak.patch
Patch1: 0002.patch

BuildRequires: autoconf
BuildRequires: automake
BuildRequires: gcc
BuildRequires: libtool
BuildRequires: make

%description
Utilities for formatting and repairing exFAT filesystems.

%prep
%autosetup -p1

%build
autoreconf -vif
%configure \
--enable-shared=yes \
--enable-static=no
%make_build

%install
%make_install

%files
%license COPYING
%doc README.md
%{_sbindir}/dump.exfat
%{_sbindir}/exfatlabel
%{_sbindir}/fsck.exfat
%{_sbindir}/mkfs.exfat
%{_sbindir}/tune.exfat
%{_mandir}/man8/dump.exfat.*
%{_mandir}/man8/exfatlabel.*
%{_mandir}/man8/fsck.exfat.*
%{_mandir}/man8/mkfs.exfat.*
%{_mandir}/man8/tune.exfat.*

%changelog
* Tue May 24 2022 Pavel Reichl <preichl@redhat.com> - 1.1.3-3.test
- Fix some covscan issues

* Mon May 09 2022 Pavel Reichl <preichl@redhat.com> - 1.1.3-2
- Fix memomry leak

* Wed Apr 20 2022 Pavel Reichl <preichl@redhat.com> - 1.1.3-1
- Rebase

* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 1.1.2-2
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688

* Tue Jun 1 2021 Pavel Reichl <preichl@redhat.com> - 1.1.2-1
- First build.
Loading…
Cancel
Save