mirror of
https://github.com/libssh2/libssh2.git
synced 2025-07-31 00:03:08 +03:00
ossfuzz: fix picky compiler warnings, make it pass checksrc
- fix compiler warnings.
- make it pass `checksrc`.
- fix shell `set -u` errors.
Follow-up to 5012442850
#901
- REUSE: tidy up ossfuzz files.
Cherry-picked from #1484
Closes #1526
This commit is contained in:
@ -37,7 +37,6 @@ path = [
|
||||
"tests/openssh_server/ca_*",
|
||||
"tests/openssh_server/ssh_*",
|
||||
"tests/openssh_server/sshd_config",
|
||||
"tests/ossfuzz/*",
|
||||
"tests/test_read_algos.txt",
|
||||
"vms/libssh2_config.h",
|
||||
"vms/libssh2_*.dcl",
|
||||
@ -51,6 +50,7 @@ path = [
|
||||
"m4/.gitignore",
|
||||
"src/.gitignore",
|
||||
"tests/.gitignore",
|
||||
"tests/ossfuzz/.gitignore",
|
||||
]
|
||||
SPDX-FileCopyrightText = "The libssh2 project and its contributors."
|
||||
SPDX-License-Identifier = "BSD-3-Clause"
|
||||
|
@ -6,5 +6,5 @@ set -e
|
||||
|
||||
cd "$(dirname "$0")/.."
|
||||
|
||||
git ls-files "*.[ch]" | xargs -n1 \
|
||||
git ls-files "*.[ch]" "*.cc" | xargs -n1 \
|
||||
./ci/checksrc.pl -i4 -m79 -AFOPENMODE -ASNPRINTF -ATYPEDEFSTRUCT
|
||||
|
@ -1,3 +1,6 @@
|
||||
# Copyright (C) The libssh2 project and its contributors.
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
AM_CPPFLAGS = -I$(top_builddir)/include
|
||||
LDADD = $(top_builddir)/src/libssh2.la
|
||||
|
||||
|
@ -1,4 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
# Copyright (C) The libssh2 project and its contributors.
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
set -eu
|
||||
|
||||
@ -8,12 +10,12 @@ set -eu
|
||||
# Save off the current folder as the build root.
|
||||
export BUILD_ROOT="$PWD"
|
||||
|
||||
echo "CC: $CC"
|
||||
echo "CXX: $CXX"
|
||||
echo "LIB_FUZZING_ENGINE: $LIB_FUZZING_ENGINE"
|
||||
echo "CFLAGS: $CFLAGS"
|
||||
echo "CXXFLAGS: $CXXFLAGS"
|
||||
echo "OUT: $OUT"
|
||||
echo "CC: ${CC:-}"
|
||||
echo "CXX: ${CXX:-}"
|
||||
echo "LIB_FUZZING_ENGINE: ${LIB_FUZZING_ENGINE:-}"
|
||||
echo "CFLAGS: ${CFLAGS:-}"
|
||||
echo "CXXFLAGS: ${CXXFLAGS:-}"
|
||||
echo "OUT: ${OUT:-}"
|
||||
|
||||
MAKEFLAGS+="-j$(nproc)"
|
||||
export MAKEFLAGS
|
||||
|
@ -14,12 +14,14 @@
|
||||
#include "testinput.h"
|
||||
|
||||
#define FUZZ_ASSERT(COND) \
|
||||
do { \
|
||||
if(!(COND)) \
|
||||
{ \
|
||||
fprintf(stderr, "Assertion failed: " #COND "\n%s", \
|
||||
strerror(errno)); \
|
||||
assert((COND)); \
|
||||
}
|
||||
} \
|
||||
} while(0)
|
||||
|
||||
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
|
||||
{
|
||||
@ -36,15 +38,14 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
|
||||
goto EXIT_LABEL;
|
||||
}
|
||||
|
||||
// Create a socket pair so data can be sent in.
|
||||
/* Create a socket pair so data can be sent in. */
|
||||
rc = socketpair(AF_UNIX, SOCK_STREAM, 0, socket_fds);
|
||||
FUZZ_ASSERT(rc == 0);
|
||||
|
||||
written = send(socket_fds[1], data, size, 0);
|
||||
|
||||
if(written != size)
|
||||
{
|
||||
// Handle whatever error case we're in.
|
||||
if(written != (ssize_t)size) {
|
||||
/* Handle whatever error case we're in. */
|
||||
fprintf(stderr, "send() of %zu bytes returned %zu (%d)\n",
|
||||
size,
|
||||
written,
|
||||
@ -53,13 +54,13 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
|
||||
}
|
||||
|
||||
rc = shutdown(socket_fds[1], SHUT_WR);
|
||||
if(rc)
|
||||
{
|
||||
if(rc) {
|
||||
fprintf(stderr, "socket shutdown failed (%d)\n", rc);
|
||||
goto EXIT_LABEL;
|
||||
}
|
||||
|
||||
// Create a session and start the handshake using the fuzz data passed in.
|
||||
/* Create a session and start the handshake using the fuzz data
|
||||
passed in. */
|
||||
session = libssh2_session_init();
|
||||
if(session) {
|
||||
libssh2_session_set_blocking(session, 1);
|
||||
@ -72,17 +73,16 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
|
||||
goto EXIT_LABEL;
|
||||
}
|
||||
|
||||
// If we get here the handshake actually completed.
|
||||
/* If we get here the handshake actually completed. */
|
||||
handshake_completed = 1;
|
||||
|
||||
EXIT_LABEL:
|
||||
|
||||
if(session)
|
||||
{
|
||||
if(handshake_completed)
|
||||
{
|
||||
if(session) {
|
||||
if(handshake_completed) {
|
||||
libssh2_session_disconnect(session,
|
||||
"Normal Shutdown, Thank you for playing");
|
||||
"Normal Shutdown, "
|
||||
"Thank you for playing");
|
||||
}
|
||||
|
||||
libssh2_session_free(session);
|
||||
|
@ -16,15 +16,13 @@
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
int ii;
|
||||
for(ii = 1; ii < argc; ii++)
|
||||
{
|
||||
for(ii = 1; ii < argc; ii++) {
|
||||
FILE *infile;
|
||||
printf("[%s] ", argv[ii]);
|
||||
|
||||
/* Try and open the file. */
|
||||
infile = fopen(argv[ii], "rb");
|
||||
if(infile)
|
||||
{
|
||||
if(infile) {
|
||||
uint8_t *buffer = NULL;
|
||||
size_t buffer_len;
|
||||
|
||||
@ -32,15 +30,14 @@ int main(int argc, char **argv)
|
||||
|
||||
/* Get the length of the file. */
|
||||
fseek(infile, 0L, SEEK_END);
|
||||
buffer_len = ftell(infile);
|
||||
buffer_len = (size_t)ftell(infile);
|
||||
|
||||
/* Reset the file indicator to the beginning of the file. */
|
||||
fseek(infile, 0L, SEEK_SET);
|
||||
|
||||
/* Allocate a buffer for the file contents. */
|
||||
buffer = (uint8_t *)calloc(buffer_len, sizeof(uint8_t));
|
||||
if(buffer)
|
||||
{
|
||||
if(buffer) {
|
||||
/* Read all the text from the file into the buffer. */
|
||||
fread(buffer, sizeof(uint8_t), buffer_len, infile);
|
||||
printf("Read %zu bytes, fuzzing.. ", buffer_len);
|
||||
@ -54,8 +51,7 @@ int main(int argc, char **argv)
|
||||
free(buffer);
|
||||
buffer = NULL;
|
||||
}
|
||||
else
|
||||
{
|
||||
else {
|
||||
fprintf(stderr,
|
||||
"[%s] Failed to allocate %zu bytes \n",
|
||||
argv[ii],
|
||||
@ -66,9 +62,9 @@ int main(int argc, char **argv)
|
||||
fclose(infile);
|
||||
infile = NULL;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Failed to open the file. Maybe wrong name or wrong permissions? */
|
||||
else {
|
||||
/* Failed to open the file.
|
||||
Maybe wrong name or wrong permissions? */
|
||||
fprintf(stderr, "[%s] Open failed. \n", argv[ii]);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user