Sisyphus repository
Last update: 1 october 2023 | SRPMs: 18631 | Visits: 37771393
en ru br
ALT Linux repos
S:1.10.12-alt1_8jpp11
5.0: 1.7.1-alt3
4.1: 1.7.0-alt9.M41.1
4.0: 1.7.0-alt8
3.0: 1.6.5-alt1

Other repositories
Upstream:1.7.0

Group :: Development/Java
RPM: ant

 Main   Changelog   Spec   Patches   Sources   Download   Gear   Bugs and FR  Repocop 

Patch: 0001-Fix-integer-overflow-when-parsing-SOURCE_DATE_EPOCH.patch
Download


From 750924c556fbb0c431e983ec57befb9a7f070685 Mon Sep 17 00:00:00 2001
From: Marian Koncek <mkoncek@redhat.com>
Date: Fri, 3 Jun 2022 12:43:45 +0200
Subject: [PATCH] Fix integer overflow when parsing SOURCE_DATE_EPOCH
Upstream: https://github.com/apache/ant/pull/186/commits
---
 .../org/apache/tools/ant/taskdefs/Tstamp.java |  2 +-
 src/tests/antunit/taskdefs/tstamp-test.xml    | 31 +++++++++++++++++++
 2 files changed, 32 insertions(+), 1 deletion(-)
diff --git a/src/main/org/apache/tools/ant/taskdefs/Tstamp.java b/src/main/org/apache/tools/ant/taskdefs/Tstamp.java
index aa1034e..ca10efe 100644
--- a/src/main/org/apache/tools/ant/taskdefs/Tstamp.java
+++ b/src/main/org/apache/tools/ant/taskdefs/Tstamp.java
@@ -82,7 +82,7 @@ public class Tstamp extends Task {
             try {
                 if (epoch != null) {
                     // Value of SOURCE_DATE_EPOCH will be an integer, representing seconds.
-                    d = new Date(Integer.parseInt(epoch) * 1000);
+                    d = new Date(Long.parseLong(epoch) * 1000L);
                     log("Honouring environment variable " + ENV_SOURCE_DATE_EPOCH + " which has been set to " + epoch);
                 }
             } catch(NumberFormatException e) {
diff --git a/src/tests/antunit/taskdefs/tstamp-test.xml b/src/tests/antunit/taskdefs/tstamp-test.xml
index 20c3227..1553d32 100644
--- a/src/tests/antunit/taskdefs/tstamp-test.xml
+++ b/src/tests/antunit/taskdefs/tstamp-test.xml
@@ -75,4 +75,35 @@ public class IsEpochIn1969Here implements Condition {
     <!-- 'iso' overrides 'simple' -->
     <au:assertPropertyEquals name="DSTAMP" value="19720417"/>
   </target>
+
+  <target name="testSourceDateEpoch">
+    <mkdir dir="${input}"/>
+    <mkdir dir="${output}"/>
+    <echo file="${input}/TstampAntunitTest.java"><![CDATA[
+      import org.apache.tools.ant.*;
+      import org.apache.tools.ant.taskdefs.*;
+      public class TstampAntunitTest {
+        public static void main(String[] args) {
+          Task task = new Tstamp();
+          task.setProject(new Project());
+          task.execute();
+          String today = task.getProject().getProperty("TODAY");
+          System.out.println("TODAY is " + today);
+        }
+      }
+    ]]></echo>
+    <javac srcdir="${input}" destdir="${output}"/>
+    <local name="testout"/>
+    <java classname="TstampAntunitTest"
+          failonerror="true"
+          outputproperty="testout"
+          fork="true">
+      <classpath>
+        <pathelement location="${output}"/>
+        <pathelement path="${java.class.path}"/>
+      </classpath>
+      <env key="SOURCE_DATE_EPOCH" value="1650585600"/>
+    </java>
+    <au:assertEquals expected="TODAY is April 22 2022" actual="${testout}"/>
+  </target>
 </project>
-- 
2.35.1
 
design & coding: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
current maintainer: Michael Shigorin