From: "Arthur Chan via GitGitGadget" <gitgitgadget@gmail.com>
To: git@vger.kernel.org
Cc: Arthur Chan <arthur.chan@adalogics.com>,
Arthur Chan <arthur.chan@adalogics.com>
Subject: [PATCH] fuzz: add new oss-fuzz fuzzer for date.c / date.h
Date: Sat, 11 Nov 2023 17:39:39 +0000 [thread overview]
Message-ID: <pull.1612.git.1699724379458.gitgitgadget@gmail.com> (raw)
From: Arthur Chan <arthur.chan@adalogics.com>
Signed-off-by: Arthur Chan <arthur.chan@adalogics.com>
---
fuzz: add new oss-fuzz fuzzer for date.c / date.h
This patch is aimed to add a new oss-fuzz fuzzer to the oss-fuzz
directory for fuzzing date.c / date.h in the base directory.
The .gitignore of the oss-fuzz directory and the Makefile have been
modified to accommodate the new fuzzer fuzz-date.c.
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-1612%2Farthurscchan%2Fnew-fuzzer-date-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-1612/arthurscchan/new-fuzzer-date-v1
Pull-Request: https://github.com/gitgitgadget/git/pull/1612
Makefile | 1 +
oss-fuzz/.gitignore | 1 +
oss-fuzz/fuzz-date.c | 75 ++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 77 insertions(+)
create mode 100644 oss-fuzz/fuzz-date.c
diff --git a/Makefile b/Makefile
index 03adcb5a480..c9fe99a8c88 100644
--- a/Makefile
+++ b/Makefile
@@ -752,6 +752,7 @@ ETAGS_TARGET = TAGS
FUZZ_OBJS += oss-fuzz/fuzz-commit-graph.o
FUZZ_OBJS += oss-fuzz/fuzz-pack-headers.o
FUZZ_OBJS += oss-fuzz/fuzz-pack-idx.o
+FUZZ_OBJS += oss-fuzz/fuzz-date.o
.PHONY: fuzz-objs
fuzz-objs: $(FUZZ_OBJS)
diff --git a/oss-fuzz/.gitignore b/oss-fuzz/.gitignore
index 9acb74412ef..2375e77b108 100644
--- a/oss-fuzz/.gitignore
+++ b/oss-fuzz/.gitignore
@@ -1,3 +1,4 @@
fuzz-commit-graph
fuzz-pack-headers
fuzz-pack-idx
+fuzz-date
diff --git a/oss-fuzz/fuzz-date.c b/oss-fuzz/fuzz-date.c
new file mode 100644
index 00000000000..29bcaf595e4
--- /dev/null
+++ b/oss-fuzz/fuzz-date.c
@@ -0,0 +1,75 @@
+#include "git-compat-util.h"
+#include "date.h"
+
+int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size);
+
+int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
+{
+ int type;
+ int time;
+ int num;
+ char *str;
+ timestamp_t ts;
+ enum date_mode_type dmtype;
+ struct date_mode *dm;
+
+ if (size <= 8)
+ {
+ return 0;
+ }
+
+ type = (*((int *)data)) % 8;
+ data += 4;
+ size -= 4;
+
+ time = abs(*((int *)data));
+ data += 4;
+ size -= 4;
+
+ str = (char *)malloc(size+1);
+ if (!str)
+ {
+ return 0;
+ }
+ memcpy(str, data, size);
+ str[size] = '\0';
+
+ ts = approxidate_careful(str, &num);
+ free(str);
+
+ switch(type)
+ {
+ case 0: default:
+ dmtype = DATE_NORMAL;
+ break;
+ case 1:
+ dmtype = DATE_HUMAN;
+ break;
+ case 2:
+ dmtype = DATE_SHORT;
+ break;
+ case 3:
+ dmtype = DATE_ISO8601;
+ break;
+ case 4:
+ dmtype = DATE_ISO8601_STRICT;
+ break;
+ case 5:
+ dmtype = DATE_RFC2822;
+ break;
+ case 6:
+ dmtype = DATE_RAW;
+ break;
+ case 7:
+ dmtype = DATE_UNIX;
+ break;
+ }
+
+ dm = date_mode_from_type(dmtype);
+ dm->local = 1;
+ show_date(ts, time, dm);
+
+ date_mode_release(dm);
+
+ return 0;
+}
base-commit: dadef801b365989099a9929e995589e455c51fed
--
gitgitgadget
next reply other threads:[~2023-11-11 17:39 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-11 17:39 Arthur Chan via GitGitGadget [this message]
2023-11-12 5:59 ` [PATCH] fuzz: add new oss-fuzz fuzzer for date.c / date.h Junio C Hamano
2023-11-12 12:39 ` Junio C Hamano
2023-11-13 16:22 ` [PATCH v2] " Arthur Chan via GitGitGadget
2023-11-13 18:35 ` Jeff King
2023-11-13 23:27 ` Junio C Hamano
2023-11-13 23:27 ` Junio C Hamano
2023-11-14 10:53 ` [PATCH v3] " Arthur Chan via GitGitGadget
2023-11-14 17:03 ` Junio C Hamano
2023-11-17 17:47 ` [PATCH v4] " Arthur Chan via GitGitGadget
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=pull.1612.git.1699724379458.gitgitgadget@gmail.com \
--to=gitgitgadget@gmail.com \
--cc=arthur.chan@adalogics.com \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.