Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added primary contact email #11791

Open
wants to merge 58 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
e6d1378
Added primary contact email
leonate Apr 9, 2024
d4b5a34
Updated build.sh and Fuzzer to work with Jxls 3
leonate Apr 20, 2024
3dc7c13
Added missed license info
leonate Apr 20, 2024
815d132
Installed JDK 17
leonate May 3, 2024
cb93f70
Fixed JDK 17 install
leonate May 4, 2024
36659a1
Merge branch 'master' into patch-1
leonate May 4, 2024
312cea8
Fixed setting JAVA_HOME
leonate May 6, 2024
a5fe3cc
Output java path
leonate May 6, 2024
539b590
Echo java home and path
leonate May 6, 2024
e9986cf
Merge branch 'master' into patch-1
leonate May 10, 2024
a3baee7
Fixed JAVA_HOME setting
leonate May 14, 2024
a11764b
Merge branch 'master' into patch-1
leonate May 14, 2024
307bd17
Merge branch 'master' into patch-1
leonate May 18, 2024
38dcb6e
Merge branch 'master' into patch-1
leonate May 21, 2024
d5aed0c
Trying to install JDK 17 from Oracle website
leonate May 21, 2024
054870f
Fixed JDK url
leonate May 21, 2024
df4e73b
Merge branch 'master' into patch-1
leonate May 21, 2024
a64a0bf
Fixed java installation path
leonate May 21, 2024
1dafd35
Merge branch 'master' into patch-1
leonate May 21, 2024
f8c9b2a
Fixing setting JDK version env
leonate May 22, 2024
ed0e471
Merge branch 'master' into patch-1
leonate May 22, 2024
7824284
Logging output to investigate JDK 17 install issue
leonate May 22, 2024
3276dc0
Extracted JDK to another directory
leonate May 23, 2024
f37f4c5
Merge branch 'master' into patch-1
leonate May 23, 2024
800c8dc
Fixed JDK 17 path
leonate May 23, 2024
d53b1b3
Merge branch 'master' into patch-1
leonate May 23, 2024
c195a09
Fixed JDK path
leonate May 23, 2024
0afd5f8
Fixed JDK 17 path and environment vars
leonate May 28, 2024
7710c02
Merge branch 'master' into patch-1
leonate May 28, 2024
1b8d5be
Fixed setting environment vars
leonate May 29, 2024
b9578af
Merge branch 'master' into patch-1
leonate May 29, 2024
2576ec3
Another attempt to fix JDK 17 path
leonate May 29, 2024
58f33e4
Merge branch 'master' into patch-1
leonate May 29, 2024
55529df
Explicitly setting JDK build folder
leonate May 29, 2024
824e0fa
Merge branch 'master' into patch-1
leonate May 29, 2024
b3390c5
Created folder for JDK extraction
leonate May 30, 2024
479bcdd
Merge branch 'master' into patch-1
leonate May 30, 2024
781e886
More debug
leonate May 30, 2024
e517b6d
Some debug commands
leonate May 30, 2024
ef20868
Merge branch 'master' into patch-1
leonate Jun 1, 2024
91d02a1
Debug prints
leonate Jun 1, 2024
682c99f
Fixed working folder
leonate Jun 2, 2024
89080f8
Merge branch 'master' into patch-1
leonate Jun 3, 2024
4cf289c
Merge branch 'master' into patch-1
leonate Jun 4, 2024
3f4ed61
Cloned the project
leonate Jun 5, 2024
ff13135
Fixed path
leonate Jun 5, 2024
ef4d91d
Merge branch 'master' into patch-1
leonate Jun 5, 2024
1295e57
Merge branch 'master' into patch-1
leonate Jun 6, 2024
fc2b0fe
Merge branch 'master' into patch-1
leonate Jun 7, 2024
ef2d4bc
Merge branch 'master' into patch-1
leonate Jun 8, 2024
312cb78
Merge branch 'master' into patch-1
leonate Jun 11, 2024
3febd8c
Merge branch 'master' into patch-1
leonate Jun 16, 2024
186f939
Hard-coded the workdir folder
leonate Jun 19, 2024
50d6fa1
Hard-coded jxls folder
leonate Jun 19, 2024
0ac2320
Merge branch 'master' into patch-1
leonate Jun 19, 2024
997973b
Merge branch 'master' into patch-1
leonate Jun 19, 2024
fef8ca1
Reintroduced $SRC folder
leonate Jun 19, 2024
f589d66
More debug output
leonate Jun 19, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
46 changes: 37 additions & 9 deletions projects/jxls/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -16,17 +16,45 @@

FROM gcr.io/oss-fuzz-base/base-builder-jvm

RUN rm -rf $SRC/project-parent/jxls
RUN git clone --depth 1 https://github.com/jxlsteam/jxls $SRC/jxls
RUN chmod +x $SRC/jxls/gradlew
# Install necessary packages
RUN apt-get update && apt-get install -y wget apt-transport-https gnupg
# Download and install JDK 17 from the official Oracle website
RUN wget -q --no-cookies --no-check-certificate --header "Cookie: oraclelicense=accept-securebackup-cookie" "https://download.oracle.com/java/17/archive/jdk-17.0.10_linux-x64_bin.tar.gz" -O /tmp/jdk-17_linux-x64_bin.tar.gz

RUN curl -L https://archive.apache.org/dist/maven/maven-3/3.8.7/binaries/apache-maven-3.8.7-bin.zip -o maven.zip && \
unzip maven.zip -d $SRC/maven && \
rm -rf maven.zip
ENV MVN $SRC/maven/apache-maven-3.8.7/bin/mvn
# extract JDK installation
RUN mkdir -p /home/user/jdk
RUN tar -zxvf /tmp/jdk-17_linux-x64_bin.tar.gz -C /home/user/jdk

COPY *.patch $SRC/
# Debug: List the contents of the user home directory
RUN ls -la /home/user/jdk

# Set the JAVA_HOME and PATH variables correctly
ENV JAVA_HOME /home/user/jdk/jdk-17.0.10
ENV PATH $JAVA_HOME/bin:$PATH

# Debug: Print the JAVA_HOME, and PATH environment variables
RUN echo "JAVA_HOME: $JAVA_HOME"
RUN echo "PATH: $PATH"

# Clean up
RUN rm /tmp/jdk-17_linux-x64_bin.tar.gz

# Confirm Java installation
RUN java -version

# Install Maven
RUN apt-get update && apt-get install -y maven

# Clone project
RUN rm -rf $SRC
RUN echo "Cloning jxls into $SRC"
RUN git clone https://github.com/jxlsteam/jxls $SRC

# Copy fuzzer files
COPY build.sh $SRC/
COPY *Fuzzer.java $SRC/
COPY *.dict $SRC/
WORKDIR $SRC/jxls
WORKDIR $SRC

RUN ls .

60 changes: 21 additions & 39 deletions projects/jxls/ProcessTemplateFuzzer.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,25 +14,19 @@
//

import com.code_intelligence.jazzer.api.FuzzedDataProvider;
import org.jxls.common.Context;
import org.jxls.common.JxlsException;
import org.jxls.util.CannotOpenWorkbookException;
import org.jxls.util.JxlsHelper;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.ss.usermodel.Comment;
import org.apache.poi.ss.usermodel.RichTextString;
import org.apache.poi.ss.usermodel.ClientAnchor;
import org.apache.poi.ss.usermodel.CreationHelper;
import org.apache.poi.ss.usermodel.Drawing;

import java.io.*;
import java.nio.file.Files;
import org.jxls.builder.JxlsOutputFile;
import org.jxls.transform.poi.JxlsPoiTemplateFillerBuilder;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.file.Path;
import java.util.*;
import java.util.HashMap;
import java.util.Map;

public class ProcessTemplateFuzzer {
private static Path templatePath;
Expand Down Expand Up @@ -84,35 +78,23 @@ public static Path createDocument(FuzzedDataProvider data) throws IOException {
return templatePath;
}

public static void fuzzerTestOneInput(FuzzedDataProvider data) {
Path templatePath = null;
public static void fuzzerTestOneInput(FuzzedDataProvider data) throws FileNotFoundException {
Path templatePath;
try {
templatePath = ProcessTemplateFuzzer.createDocument(data);
} catch (IOException | IllegalArgumentException e) {
return;
}

Context context = new Context(ProcessTemplateFuzzer.generateHashMap(data));
OutputStream os = new ByteArrayOutputStream();
InputStream in = null;
try {
in = Files.newInputStream(templatePath.toFile().toPath());
} catch (IOException e) {
throw new RuntimeException(e);
}

try {
if (data.consumeBoolean()) {
JxlsHelper.getInstance().processTemplate(in, os, context);
} else {
JxlsHelper.getInstance().processGridTemplateAtCell(
in,
os,
context,
data.consumeString(50),
data.consumeString(50)
);
}
} catch (IOException | JxlsException e) {}
Map<String, Object> dataMap = ProcessTemplateFuzzer.generateHashMap(data);

File output = new File("report.xlsx");

JxlsPoiTemplateFillerBuilder.newInstance()
.withTemplate(templatePath.toFile())
.build()
.fill(dataMap, new JxlsOutputFile(output));

}
}
32 changes: 0 additions & 32 deletions projects/jxls/build.patch

This file was deleted.

30 changes: 18 additions & 12 deletions projects/jxls/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,17 +14,24 @@
# limitations under the License.
#
################################################################################
echo $JAVA_HOME

java --version

CURRENT_VERSION=$(./gradlew properties --no-daemon --console=plain | sed -nr "s/^version:\ (.*)/\1/p")
mv $SRC/*.dict $OUT
echo $SRC
echo $OUT

git apply $SRC/build.patch --whitespace=fix --reject
ls .

./gradlew clean shadowJar -x :jxls:javadoc -x :jxls-poi:test
mv *.dict $OUT

cp "../jxls/jxls/build/libs/jxls-$CURRENT_VERSION-all.jar" $OUT/jxls.jar
cp "../jxls/jxls-poi/build/libs/jxls-poi-$CURRENT_VERSION-all.jar" $OUT/jxls-poi.jar

CURRENT_VERSION=$(mvn org.apache.maven.plugins:maven-help-plugin:3.2.0:evaluate -Dexpression=project.version -q -DforceStdout)

mvn package

cp "jxls/target/jxls-$CURRENT_VERSION.jar" $OUT/jxls.jar
cp "jxls-poi/target/jxls-poi-$CURRENT_VERSION.jar" $OUT/jxls-poi.jar

ALL_JARS=$(find $OUT/ -name *.jar ! -name jazzer*.jar -printf "%f ")

Expand All @@ -37,11 +44,10 @@ BUILD_CLASSPATH=$(echo $ALL_JARS | xargs printf -- "$OUT/%s:"):$JAZZER_API_PATH
# All .jar and .class files lie in the same directory as the fuzzer at runtime.
RUNTIME_CLASSPATH=$(echo $ALL_JARS | xargs printf -- "\$this_dir/%s:"):\$this_dir

for fuzzer in $(find $SRC -name '*Fuzzer.java'); do
for fuzzer in $(find . -name '*Fuzzer.java'); do
fuzzer_basename=$(basename -s .java $fuzzer)
javac -cp $BUILD_CLASSPATH $fuzzer
#cp $SRC/$fuzzer_basename.class $OUT/
cp $SRC/*.class $OUT/
cp *.class $OUT/

# Create an execution wrapper that executes Jazzer with the correct arguments.
echo "#!/bin/bash
Expand All @@ -56,7 +62,7 @@ LD_LIBRARY_PATH=\"$JVM_LD_LIBRARY_PATH\":\$this_dir \
\$this_dir/jazzer_driver --agent_path=\$this_dir/jazzer_agent_deploy.jar \
--cp=$RUNTIME_CLASSPATH \
--target_class=$fuzzer_basename \
--jvm_args=\"\$mem_settings\" \
--jvm_args=\"\$mem_settings:-Djava.awt.headless=true\" \
\$@" > $OUT/$fuzzer_basename
chmod u+x $OUT/$fuzzer_basename
done
chmod +x $OUT/$fuzzer_basename
done
3 changes: 2 additions & 1 deletion projects/jxls/project.yaml
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
homepage: "https://github.com/jxlsteam/jxls"
language: jvm
primary_contact: "[email protected]"
fuzzing_engines:
- libfuzzer
main_repo: "https://github.com/jxlsteam/jxls"
sanitizers:
- address
vendor_ccs:
- "[email protected]"
- "[email protected]"