Accepting request 1203351 from Java:packages

Fix Year 2038 bug

OBS-URL: https://build.opensuse.org/request/show/1203351
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/plexus-archiver?expand=0&rev=9
This commit is contained in:
Ana Guerrero 2024-09-25 19:53:28 +00:00 committed by Git OBS Bridge
commit ebec3f994c
3 changed files with 50 additions and 0 deletions

View File

@ -1,3 +1,12 @@
-------------------------------------------------------------------
Tue Sep 24 19:08:57 UTC 2024 - Fridrich Strba <fstrba@suse.com>
- Added patch:
* y2038.patch
+ Don't pass possibly negative time to File.setLastModified,
where it is explicitly forbidden
+ Fixes java.lang.IllegalArgumentException: Negative time
-------------------------------------------------------------------
Thu Sep 19 05:40:53 UTC 2024 - Fridrich Strba <fstrba@suse.com>

View File

@ -27,6 +27,7 @@ Source0: https://github.com/codehaus-plexus/plexus-archiver/archive/plexu
Source1: %{name}-build.xml
Patch0: 0001-Remove-support-for-snappy.patch
Patch1: 0002-Remove-support-for-zstd.patch
Patch2: y2038.patch
BuildRequires: ant
BuildRequires: apache-commons-compress
BuildRequires: apache-commons-io
@ -80,6 +81,8 @@ rm -rf src/main/java/org/codehaus/plexus/archiver/tar/PlexusIoTarZstdFileResourc
rm -rf src/main/java/org/codehaus/plexus/archiver/tar/TarZstdArchiver.java
rm -rf src/test/java/org/codehaus/plexus/archiver/tar/TarZstdUnArchiverTest.java
%patch -P 2 -p1
%build
mkdir -p lib
build-jar-repository -s lib atinject slf4j/api org.eclipse.sisu.inject jsr-305 commons-compress commons-io plexus/utils plexus/io

38
y2038.patch Normal file
View File

@ -0,0 +1,38 @@
--- plexus-archiver-4.10.0/src/main/java/org/codehaus/plexus/archiver/AbstractUnArchiver.java 2024-09-25 07:27:00.833967276 +0200
+++ plexus-archiver-4.10.0/src/main/java/org/codehaus/plexus/archiver/AbstractUnArchiver.java 2024-09-25 08:30:07.036715483 +0200
@@ -325,7 +325,7 @@
Files.copy(compressedInputStream, targetFileName.toPath(), REPLACE_EXISTING);
}
- targetFileName.setLastModified(entryDate.getTime());
+ setTargetLastModified(targetFileName, entryDate.getTime());
if (!isIgnorePermissions() && mode != null && !isDirectory) {
ArchiveEntryUtils.chmod(targetFileName, mode);
@@ -391,6 +391,10 @@
return isOverwrite() || fileOnDiskIsOlderThanEntry;
}
+ protected void setTargetLastModified(File target, long millis) {
+ target.setLastModified(millis);
+ }
+
private String normalizedFileSeparator(String pathOrEntry) {
return pathOrEntry.replace("/", File.separator);
}
--- plexus-archiver-4.10.0/src/main/java/org/codehaus/plexus/archiver/zip/AbstractZipUnArchiver.java 2024-09-25 07:27:01.097302238 +0200
+++ plexus-archiver-4.10.0/src/main/java/org/codehaus/plexus/archiver/zip/AbstractZipUnArchiver.java 2024-09-25 08:21:11.862993093 +0200
@@ -193,4 +193,13 @@
"Error while expanding " + getSourceFile().getAbsolutePath(), ioe);
}
}
+
+ @Override
+ protected void setTargetLastModified(File target, long millis) {
+ if (millis >= 0)
+ {
+ target.setLastModified( millis );
+ }
+ }
+
}