Coverage Report

Created: 2025-12-31 07:33

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/kea-fuzzer/fuzz_dhcpsrv_csv_lease.cc
Line
Count
Source
1
// Copyright (C) 2025 Ada Logcis Ltd.
2
//
3
// This Source Code Form is subject to the terms of the Mozilla Public
4
// License, v. 2.0. If a copy of the MPL was not distributed with this
5
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
6
////////////////////////////////////////////////////////////////////////////////
7
#include <config.h>
8
9
#include <asiolink/io_address.h>
10
#include <dhcp/duid.h>
11
#include <dhcpsrv/csv_lease_file4.h>
12
#include <dhcpsrv/csv_lease_file6.h>
13
#include <dhcpsrv/lease.h>
14
#include <dhcpsrv/testutils/lease_file_io.h>
15
16
using namespace isc;
17
using namespace isc::data;
18
using namespace isc::dhcp;
19
20
552
extern "C" int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size) {
21
552
  char filename[256];
22
552
  sprintf(filename, "/tmp/libfuzzer.%d", getpid());
23
24
552
  FILE *fp = fopen(filename, "wb");
25
552
  if (!fp)
26
0
    return 0;
27
552
  fwrite(Data, Size, 1, fp);
28
552
  fclose(fp);
29
30
552
    try {
31
552
        CSVLeaseFile4 lease_file(filename);
32
552
        lease_file.open(false);
33
552
        Lease4Ptr lease;
34
552
        lease_file.next(lease);
35
552
        lease_file.close();
36
552
    } catch (const std::exception&) {
37
      // ignore any errors
38
552
    }
39
40
552
    try {
41
552
        CSVLeaseFile6 lease_file(filename);
42
552
        lease_file.open(false);
43
552
        Lease6Ptr lease;
44
552
        lease_file.next(lease);
45
552
        lease_file.close();
46
552
    } catch (const std::exception&) {
47
        // ignore any errors
48
552
    }
49
50
552
    unlink(filename);
51
552
    return 0;
52
552
}