Compare commits
No commits in common. "imports/c8-beta/hdparm-9.54-2.el8" and "c8" have entirely different histories.
imports/c8
...
c8
23
SOURCES/hdparm-9.54-resourceleak-fixes-2.patch
Normal file
23
SOURCES/hdparm-9.54-resourceleak-fixes-2.patch
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
diff -up hdparm-9.54/hdparm.c.bak hdparm-9.54/hdparm.c
|
||||||
|
--- hdparm-9.54/hdparm.c.bak 2020-06-01 17:56:47.257520643 +0200
|
||||||
|
+++ hdparm-9.54/hdparm.c 2020-06-01 17:57:29.285084217 +0200
|
||||||
|
@@ -461,12 +461,15 @@ static void dump_identity (__u16 *idw)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
char pmodes[64] = {0,}, dmodes[128]={0,}, umodes[128]={0,};
|
||||||
|
- char *model = strip(strndup((char *)&idw[27], 40));
|
||||||
|
- char *fwrev = strip(strndup((char *)&idw[23], 8));
|
||||||
|
- char *serno = strip(strndup((char *)&idw[10], 20));
|
||||||
|
+ char *model = strndup((char *)&idw[27], 40);
|
||||||
|
+ char *model_s = strip(model);
|
||||||
|
+ char *fwrev = strndup((char *)&idw[23], 8);
|
||||||
|
+ char *fwrev_s = strip(fwrev);
|
||||||
|
+ char *serno = strndup((char *)&idw[10], 20);
|
||||||
|
+ char *serno_s = strip(serno);
|
||||||
|
__u8 tPIO;
|
||||||
|
|
||||||
|
- printf("\n Model=%.40s, FwRev=%.8s, SerialNo=%.20s", model, fwrev, serno);
|
||||||
|
+ printf("\n Model=%.40s, FwRev=%.8s, SerialNo=%.20s", model_s, fwrev_s, serno_s);
|
||||||
|
printf("\n Config={");
|
||||||
|
for (i = 0; i <= 15; i++) {
|
||||||
|
if (idw[0] & (1<<i))
|
62
SOURCES/hdparm-9.62-dco_max_sector_calculation.patch
Normal file
62
SOURCES/hdparm-9.62-dco_max_sector_calculation.patch
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
diff -ruN hdparm-9.54/hdparm.c hdparm-9.54/hdparm.c
|
||||||
|
--- hdparm-9.54/hdparm.c 2021-04-26 15:05:54.000000000 +0100
|
||||||
|
+++ hdparm-9.54/hdparm.c 2021-05-10 15:58:14.000000000 +0100
|
||||||
|
@@ -1352,8 +1352,8 @@
|
||||||
|
if (verbose)
|
||||||
|
printf("GET_NATIVE_MAX_ADDRESS_EXT response: hob={%02x %02x %02x} lob={%02x %02x %02x}\n",
|
||||||
|
r.hob.lbah, r.hob.lbam, r.hob.lbal, r.lob.lbah, r.lob.lbam, r.lob.lbal);
|
||||||
|
- max = (((__u64)((r.hob.lbah << 16) | (r.hob.lbam << 8) | r.hob.lbal) << 24)
|
||||||
|
- | ((r.lob.lbah << 16) | (r.lob.lbam << 8) | r.lob.lbal)) + 1;
|
||||||
|
+ max = (((__u64)((r.hob.lbah << 16) | ((__u64)(r.hob.lbam << 8) | r.hob.lbal)) << 24)
|
||||||
|
+ | (__u64)((r.lob.lbah << 16) | (r.lob.lbam << 8) | r.lob.lbal)) + 1;
|
||||||
|
}
|
||||||
|
} else { // ACS2 or below, or optional AMAX not present
|
||||||
|
if (SUPPORTS_48BIT_ADDR(id)) {
|
||||||
|
@@ -1371,7 +1371,7 @@
|
||||||
|
printf("READ_NATIVE_MAX_ADDRESS_EXT response: hob={%02x %02x %02x} lob={%02x %02x %02x}\n",
|
||||||
|
r.hob.lbah, r.hob.lbam, r.hob.lbal, r.lob.lbah, r.lob.lbam, r.lob.lbal);
|
||||||
|
max = (((__u64)((r.hob.lbah << 16) | (r.hob.lbam << 8) | r.hob.lbal) << 24)
|
||||||
|
- | ((r.lob.lbah << 16) | (r.lob.lbam << 8) | r.lob.lbal)) + 1;
|
||||||
|
+ | ((__u64)(r.lob.lbah << 16) | (r.lob.lbam << 8) | r.lob.lbal)) + 1;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
/* DEVICE (3:0) / LBA (27:24) "remap" does NOT apply in ATA Status Return */
|
||||||
|
@@ -1556,7 +1556,7 @@
|
||||||
|
for (i = 0; i < nranges; ++i) {
|
||||||
|
nsectors += sr->nsectors;
|
||||||
|
range = sr->nsectors;
|
||||||
|
- range = (range << 48) | sr->lba;
|
||||||
|
+ range = (__u64)(range << 48) | sr->lba;
|
||||||
|
data[i] = __cpu_to_le64(range);
|
||||||
|
++sr;
|
||||||
|
}
|
||||||
|
@@ -1742,7 +1742,7 @@
|
||||||
|
err = errno;
|
||||||
|
fprintf(stderr, "stdin: error at lba:count pair #%d: %s\n", (total_ranges + 1), strerror(err));
|
||||||
|
} else {
|
||||||
|
- range = (nsect << 48) | lba;
|
||||||
|
+ range = (__u64)(nsect << 48) | lba;
|
||||||
|
nsectors += nsect;
|
||||||
|
data[nranges++] = __cpu_to_le64(range);
|
||||||
|
if (nranges == max_ranges) {
|
||||||
|
@@ -2807,7 +2807,7 @@
|
||||||
|
__u16 *dco = get_dco_identify_data(fd, 1);
|
||||||
|
if (dco) {
|
||||||
|
__u64 dco_max = dco[5];
|
||||||
|
- dco_max = ((((__u64)dco[5]) << 32) | (dco[4] << 16) | dco[3]) + 1;
|
||||||
|
+ dco_max = ((((__u64)dco[5]) << 32) | ((__u64)dco[4] << 16) | (__u64)dco[3]) + 1;
|
||||||
|
printf("(%llu?)", dco_max);
|
||||||
|
}
|
||||||
|
printf(", HPA setting seems invalid");
|
||||||
|
diff -ruN hdparm-9.61/identify.c hdparm-9.62/identify.c
|
||||||
|
--- hdparm-9.43/identify.c 2021-04-26 14:47:24.000000000 +0100
|
||||||
|
+++ hdparm-9.43/identify.c 2021-05-10 15:51:23.000000000 +0100
|
||||||
|
@@ -1531,7 +1531,7 @@
|
||||||
|
else if (dco[2] & (1<<0)) printf(" udma0");
|
||||||
|
putchar('\n');
|
||||||
|
|
||||||
|
- lba = ((((__u64)dco[5]) << 32) | (dco[4] << 16) | dco[3]) + 1;
|
||||||
|
+ lba = ((((__u64)dco[5]) << 32) | ((__u64)dco[4] << 16) | (__u64)dco[3]) + 1;
|
||||||
|
printf("\tReal max sectors: %llu\n", lba);
|
||||||
|
|
||||||
|
printf("\tATA command/feature sets:");
|
@ -1,7 +1,7 @@
|
|||||||
Summary: A utility for displaying and/or setting hard disk parameters
|
Summary: A utility for displaying and/or setting hard disk parameters
|
||||||
Name: hdparm
|
Name: hdparm
|
||||||
Version: 9.54
|
Version: 9.54
|
||||||
Release: 2%{?dist}
|
Release: 4%{?dist}
|
||||||
License: BSD
|
License: BSD
|
||||||
URL: http://sourceforge.net/projects/%{name}/
|
URL: http://sourceforge.net/projects/%{name}/
|
||||||
Source: http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.gz
|
Source: http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.gz
|
||||||
@ -10,6 +10,8 @@ Patch1: %{name}-9.43-close_fd.patch
|
|||||||
Patch2: %{name}-9.43-get_geom.patch
|
Patch2: %{name}-9.43-get_geom.patch
|
||||||
Patch3: %{name}-9.54-sysmacros.patch
|
Patch3: %{name}-9.54-sysmacros.patch
|
||||||
Patch4: %{name}-9.54-resourceleak-fixes.patch
|
Patch4: %{name}-9.54-resourceleak-fixes.patch
|
||||||
|
Patch5: %{name}-9.54-resourceleak-fixes-2.patch
|
||||||
|
Patch6: %{name}-9.62-dco_max_sector_calculation.patch
|
||||||
|
|
||||||
%description
|
%description
|
||||||
Hdparm is a useful system utility for setting (E)IDE hard drive
|
Hdparm is a useful system utility for setting (E)IDE hard drive
|
||||||
@ -37,6 +39,12 @@ install -c -m 644 hdparm.8 $RPM_BUILD_ROOT/%{_mandir}/man8
|
|||||||
%{_mandir}/man8/hdparm.8*
|
%{_mandir}/man8/hdparm.8*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed May 12 2021 Michal Grzedzicki <mge@fb.com> - 9.54-4
|
||||||
|
- backport fix for --dco-identify real max sectors calculation from upstream version 9.62 (#1959918)
|
||||||
|
|
||||||
|
* Fri Nov 06 2020 Tomas Bzatek <tbzatek@redhat.com> - 9.54-3
|
||||||
|
- fix invalid pointer free (#1833092)
|
||||||
|
|
||||||
* Thu Oct 04 2018 Karsten Hopp <karsten@redhat.com> - 9.54-2
|
* Thu Oct 04 2018 Karsten Hopp <karsten@redhat.com> - 9.54-2
|
||||||
- fix resource leaks
|
- fix resource leaks
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user