Coverage Report

Created: 2026-05-16 07:13

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
631
extern "C" int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size) {
21
631
  char filename[256];
22
631
  sprintf(filename, "/tmp/libfuzzer.%d", getpid());
23
24
631
  FILE *fp = fopen(filename, "wb");
25
631
  if (!fp)
26
0
    return 0;
27
631
  fwrite(Data, Size, 1, fp);
28
631
  fclose(fp);
29
30
631
    try {
31
631
        CSVLeaseFile4 lease_file(filename);
32
631
        lease_file.open(false);
33
631
        Lease4Ptr lease;
34
631
        lease_file.next(lease);
35
631
        lease_file.close();
36
631
    } catch (const std::exception&) {
37
      // ignore any errors
38
631
    }
39
40
631
    try {
41
631
        CSVLeaseFile6 lease_file(filename);
42
631
        lease_file.open(false);
43
631
        Lease6Ptr lease;
44
631
        lease_file.next(lease);
45
631
        lease_file.close();
46
631
    } catch (const std::exception&) {
47
        // ignore any errors
48
631
    }
49
50
631
    unlink(filename);
51
631
    return 0;
52
631
}