Skip to content

win32: fix fuzzers and have CI build them#5160

Merged
pks-t merged 6 commits into
libgit2:masterfrom
pks-t:pks/win32-fuzzers
Jul 12, 2019
Merged

win32: fix fuzzers and have CI build them#5160
pks-t merged 6 commits into
libgit2:masterfrom
pks-t:pks/win32-fuzzers

Conversation

@pks-t

@pks-t pks-t commented Jul 5, 2019

Copy link
Copy Markdown
Member

This fixes our fuzzers so that they build on Win32 platforms and enables fuzzer building in our CI.

pks-t added 6 commits July 5, 2019 11:58
The `mkdtemp` function is not available on Windows, so our download_refs
fuzzer will fail to compile on Windows. Provide an alternative
implementation to fix it.
The `printf` formatters in our standalone fuzzing driver are currently
using the "%m" specifier, which is a GNU extension that prints the error
message for the error code in `errno`. As we're using libgit2 functions
in both cases anyway, let's just use `git_error_last` instead to make
this valid on all platforms.
Use `p_unlink` instead of `unlink` to remove the generated packfiles in
our packfile fuzzer. Like this, we do not have to worry about using
proper includes that are known on all platforms, especially Win32.
The `snprintf` function does not exist on Win32, it only has
`_snprintf_s` available. Let's just avoid any cross-platform hassle and
use our own `git_buf` functionality instead.
There's multiple headers included in our fuzzers that aren't required at
all. Furthermore, some of them are not available on Win32, causing
builds to fail. Remove them to fix this.
In order to guarantee that our fuzzers build just fine on the Windows
platform, let's enable building fuzzers on all Powershell-based builds.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant