* [PATCH 0/2] Initialize repo object in fuzz-commit-graph
@ 2019-02-07 20:05 Josh Steadmon
2019-02-07 20:05 ` [PATCH 1/2] fuzz-commit-graph: initialize repo object Josh Steadmon
2019-02-07 20:05 ` [PATCH 2/2] object: fix leak of shallow_stat Josh Steadmon
0 siblings, 2 replies; 3+ messages in thread
From: Josh Steadmon @ 2019-02-07 20:05 UTC (permalink / raw)
To: git
commit-graph.c now depends on the_hash_algo, which means the_repository
must be initialized before attempting to load a commit graph. This
series adds the initialization and cleanup to fuzz-commit-graph, and
fixes a leak it discovered in the cleanup code.
Josh Steadmon (2):
fuzz-commit-graph: initialize repo objects
object: fix leak of shallow_stat
fuzz-commit-graph.c | 3 +++
object.c | 2 ++
2 files changed, 5 insertions(+)
--
2.20.1.611.gfbb209baf1-goog
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH 1/2] fuzz-commit-graph: initialize repo object
2019-02-07 20:05 [PATCH 0/2] Initialize repo object in fuzz-commit-graph Josh Steadmon
@ 2019-02-07 20:05 ` Josh Steadmon
2019-02-07 20:05 ` [PATCH 2/2] object: fix leak of shallow_stat Josh Steadmon
1 sibling, 0 replies; 3+ messages in thread
From: Josh Steadmon @ 2019-02-07 20:05 UTC (permalink / raw)
To: git
Various #DEFINE "constants" in commit-graph.c now depend on
the_hash_algo->rawsz, but this object must be initialized before it can
be used.
Signed-off-by: Josh Steadmon <steadmon@google.com>
---
fuzz-commit-graph.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/fuzz-commit-graph.c b/fuzz-commit-graph.c
index cf790c9d04..0157acbf2e 100644
--- a/fuzz-commit-graph.c
+++ b/fuzz-commit-graph.c
@@ -1,4 +1,5 @@
#include "commit-graph.h"
+#include "repository.h"
struct commit_graph *parse_commit_graph(void *graph_map, int fd,
size_t graph_size);
@@ -9,7 +10,9 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
{
struct commit_graph *g;
+ initialize_the_repository();
g = parse_commit_graph((void *)data, -1, size);
+ repo_clear(the_repository);
free(g);
return 0;
--
2.20.1.611.gfbb209baf1-goog
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH 2/2] object: fix leak of shallow_stat
2019-02-07 20:05 [PATCH 0/2] Initialize repo object in fuzz-commit-graph Josh Steadmon
2019-02-07 20:05 ` [PATCH 1/2] fuzz-commit-graph: initialize repo object Josh Steadmon
@ 2019-02-07 20:05 ` Josh Steadmon
1 sibling, 0 replies; 3+ messages in thread
From: Josh Steadmon @ 2019-02-07 20:05 UTC (permalink / raw)
To: git
In eee4502baaf ("shallow: migrate shallow information into the object
parser", 2018-05-17), we added a stat_validity pointer into the
parsed_object_pool struct, but did not add code to free this in
parsed_object_pool_clear(). This leak was found by fuzz-commit-graph.
Clear the struct and then free it in parsed_object_pool_clear() to
prevent the leak.
Signed-off-by: Josh Steadmon <steadmon@google.com>
---
object.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/object.c b/object.c
index 5dc5eec367..ca0b093c37 100644
--- a/object.c
+++ b/object.c
@@ -557,9 +557,11 @@ void parsed_object_pool_clear(struct parsed_object_pool *o)
clear_alloc_state(o->commit_state);
clear_alloc_state(o->tag_state);
clear_alloc_state(o->object_state);
+ stat_validity_clear(o->shallow_stat);
FREE_AND_NULL(o->blob_state);
FREE_AND_NULL(o->tree_state);
FREE_AND_NULL(o->commit_state);
FREE_AND_NULL(o->tag_state);
FREE_AND_NULL(o->object_state);
+ FREE_AND_NULL(o->shallow_stat);
}
--
2.20.1.611.gfbb209baf1-goog
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2019-02-07 20:06 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-02-07 20:05 [PATCH 0/2] Initialize repo object in fuzz-commit-graph Josh Steadmon
2019-02-07 20:05 ` [PATCH 1/2] fuzz-commit-graph: initialize repo object Josh Steadmon
2019-02-07 20:05 ` [PATCH 2/2] object: fix leak of shallow_stat Josh Steadmon
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).