Skip to content

Commit 60a0c68

Browse files
authored
Merge branch 'main' into scan-progress
2 parents 183fbf0 + 36ff537 commit 60a0c68

21 files changed

+687
-162
lines changed

.github/workflows/changelog.yml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
name: Show changelog since last release
2+
3+
on:
4+
workflow_dispatch:
5+
6+
jobs:
7+
changelog:
8+
name: Show changelog since last release
9+
runs-on: 'ubuntu-latest'
10+
steps:
11+
- name: Checkout code
12+
uses: actions/checkout@v4
13+
with:
14+
fetch-depth: 0 # for conventional commits and getting all git tags
15+
persist-credentials: false
16+
- name: Install git-cliff
17+
uses: greenbone/actions/uv@v3
18+
with:
19+
install: git-cliff
20+
- name: Determine changelog
21+
env:
22+
GITHUB_REPO: ${{ github.repository }}
23+
GITHUB_TOKEN: ${{ github.token }}
24+
run: |
25+
git-cliff -v --strip header --unreleased -o /tmp/changelog.md
26+
- name: Show changelog
27+
run: |
28+
cat /tmp/changelog.md
29+
cat /tmp/changelog.md >> $GITHUB_STEP_SUMMARY

.github/workflows/release.yml

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,14 +32,38 @@ jobs:
3232
contains(github.event.pull_request.labels.*.name, 'minor release') ||
3333
contains(github.event.pull_request.labels.*.name, 'major release')) &&
3434
github.event.pull_request.merged == true )
35-
runs-on: 'ubuntu-latest'
35+
runs-on: "ubuntu-latest"
3636
steps:
3737
- name: Selecting the Release type
3838
id: release-type
3939
uses: greenbone/actions/release-type@v3
4040
with:
4141
release-type-input: ${{ inputs.release-type }}
42+
- name: Checkout code
43+
uses: actions/checkout@v4
44+
with:
45+
fetch-depth: 0 # for conventional commits and getting all git tags
46+
persist-credentials: false
47+
ref: ${{ steps.release-type.outputs.release-ref }}
48+
- name: Determine release version
49+
id: release-version
50+
uses: greenbone/actions/release-version@v3
51+
with:
52+
release-type: ${{ steps.release-type.outputs.release-type }}
53+
release-version: ${{ inputs.release-version }}
54+
versioning-scheme: "semver"
55+
- name: Install git-cliff
56+
uses: greenbone/actions/uv@v3
57+
with:
58+
install: git-cliff
59+
- name: Determine changelog
60+
env:
61+
GITHUB_REPO: ${{ github.repository }}
62+
GITHUB_TOKEN: ${{ github.token }}
63+
run: |
64+
git-cliff -v --strip header -o /tmp/changelog.md --unreleased --tag ${{ steps.release-version.outputs.release-version }} ${{ steps.release-version.outputs.last-release-version }}..HEAD
4265
- name: Release with release action
66+
id: release
4367
uses: greenbone/actions/release@v3
4468
with:
4569
github-user: ${{ secrets.GREENBONE_BOT }}
@@ -48,7 +72,7 @@ jobs:
4872
gpg-key: ${{ secrets.GPG_KEY }}
4973
gpg-fingerprint: ${{ secrets.GPG_FINGERPRINT }}
5074
gpg-passphrase: ${{ secrets.GPG_PASSPHRASE }}
51-
release-type: ${{ steps.release-type.outputs.release-type }}
52-
release-version: ${{ inputs.release-version }}
75+
release-version: ${{ steps.release-version.outputs.release-version }}
76+
changelog: /tmp/changelog.md
5377
ref: ${{ steps.release-type.outputs.release-ref }}
5478
versioning-scheme: "semver"

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ message ("-- Configuring the Greenbone Vulnerability Management Libraries...")
88

99
# VERSION: Always include major, minor and patch level.
1010
project (gvm-libs
11-
VERSION 22.18.1
11+
VERSION 22.18.2
1212
LANGUAGES C)
1313

1414
if (POLICY CMP0005)

boreas/alivedetection.c

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -331,16 +331,17 @@ alive_detection_init (gvm_hosts_t *hosts, alive_test_t alive_test)
331331
/* Scanner */
332332

333333
/* Sockets */
334-
if ((error = set_all_needed_sockets (&scanner, alive_test)) != 0)
334+
error = set_all_needed_sockets (&scanner, alive_test);
335+
if (error != 0)
335336
return error;
336337

337338
/* Do not print results in stdout. Only set for command line clients*/
338339
scanner.print_results = 0;
339340

340341
/* kb_t redis connection */
341342
int scandb_id = atoi (prefs_get ("ov_maindbid"));
342-
if ((scanner.main_kb = kb_direct_conn (prefs_get ("db_address"), scandb_id))
343-
== NULL)
343+
scanner.main_kb = kb_direct_conn (prefs_get ("db_address"), scandb_id);
344+
if (scanner.main_kb == NULL)
344345
return -7;
345346
/* TODO: pcap handle */
346347
// scanner.pcap_handle = open_live (NULL, FILTER_STR); //
@@ -398,7 +399,8 @@ alive_detection_init (gvm_hosts_t *hosts, alive_test_t alive_test)
398399
int max_scan_hosts = INT_MAX, pref_value;
399400

400401
/* Check that the max_scan_hosts is set and it is greater than 0 */
401-
if ((pref_str = prefs_get ("max_scan_hosts")) != NULL)
402+
pref_str = prefs_get ("max_scan_hosts");
403+
if (pref_str != NULL)
402404
{
403405
pref_value = atoi (pref_str);
404406
if (pref_value > 0)
@@ -482,7 +484,8 @@ start_alive_detection (void *hosts_to_test)
482484
gvm_hosts_t *hosts;
483485
alive_test_t alive_test;
484486

485-
if ((alive_test_err = get_alive_test_methods (&alive_test)) != 0)
487+
alive_test_err = get_alive_test_methods (&alive_test);
488+
if (alive_test_err != 0)
486489
{
487490
g_warning ("%s: %s. Exit Boreas.", __func__,
488491
str_boreas_error (alive_test_err));
@@ -495,7 +498,8 @@ start_alive_detection (void *hosts_to_test)
495498
}
496499

497500
hosts = (gvm_hosts_t *) hosts_to_test;
498-
if ((init_err = alive_detection_init (hosts, alive_test)) != 0)
501+
init_err = alive_detection_init (hosts, alive_test);
502+
if (init_err != 0)
499503
{
500504
g_warning (
501505
"%s. Boreas could not initialise alive detection. %s. Exit Boreas.",

boreas/arp.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -329,7 +329,8 @@ send_arp_v4 (const char *dst_str)
329329

330330
if (srcip == INADDR_ANY)
331331
{
332-
if ((uint32_t) -1 == (srcip = libnet_get_ipaddr4 (libnet)))
332+
srcip = libnet_get_ipaddr4 (libnet);
333+
if ((uint32_t) -1 == srcip)
333334
{
334335
g_warning ("%s: Unable to get the IPv4 address of default "
335336
"interface %s: %s. Address '%s' will be skipped.",

boreas/boreas_io.c

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,8 @@ send_limit_msg (int num_not_scanned_hosts)
9494
return -1;
9595

9696
dbid = atoi (prefs_get ("ov_maindbid"));
97-
if ((main_kb = kb_direct_conn (prefs_get ("db_address"), dbid)))
97+
main_kb = kb_direct_conn (prefs_get ("db_address"), dbid);
98+
if (main_kb)
9899
{
99100
char buf[256];
100101
g_snprintf (buf, 256,
@@ -439,9 +440,11 @@ send_dead_hosts_to_ospd_openvas (int count_dead_hosts)
439440
gchar *
440441
get_openvas_scan_id (const gchar *db_address, int db_id)
441442
{
442-
kb_t main_kb = NULL;
443+
kb_t main_kb;
443444
gchar *scan_id;
444-
if ((main_kb = kb_direct_conn (db_address, db_id)))
445+
446+
main_kb = kb_direct_conn (db_address, db_id);
447+
if (main_kb)
445448
{
446449
scan_id = kb_item_get_str (main_kb, ("internal/scanid"));
447450
kb_lnk_reset (main_kb);

boreas/cli.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,8 @@ init_cli (scanner_t *scanner, gvm_hosts_t *hosts, alive_test_t alive_test,
5050
gvm_host_value_str (host), host);
5151

5252
/* Sockets. */
53-
if ((error = set_all_needed_sockets (scanner, alive_test)) != 0)
53+
error = set_all_needed_sockets (scanner, alive_test);
54+
if (error != 0)
5455
return error;
5556

5657
/* Only init portlist if either TCP-ACK or TCP-SYN ping is used. */
@@ -224,7 +225,8 @@ is_host_alive (const char *ip_str, int *count)
224225
const gchar *port_list = NULL;
225226

226227
hosts = gvm_hosts_new (ip_str);
227-
if ((alive_test_err = get_alive_test_methods (&alive_test)) != 0)
228+
alive_test_err = get_alive_test_methods (&alive_test);
229+
if (alive_test_err != 0)
228230
{
229231
g_warning ("%s: %s. Exit Boreas.", __func__,
230232
str_boreas_error (alive_test_err));

boreas/util.c

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,11 @@ set_socket (socket_type_t, int *);
3434
*
3535
* From W.Richard Stevens "UNIX NETWORK PROGRAMMING" book. libfree/in_cksum.c
3636
* TODO: Section 8.7 of TCPv2 has more efficient implementation
37+
*
38+
* @param[in] addr Data to checksum over.
39+
* @param[in] len Length of data in bytes.
40+
*
41+
* @return Checksum in bytes.
3742
**/
3843
uint16_t
3944
in_cksum (uint16_t *addr, int len)
@@ -65,7 +70,7 @@ in_cksum (uint16_t *addr, int len)
6570
sum = (sum >> 16) + (sum & 0xffff); /* add hi 16 to low 16 */
6671
sum += (sum >> 16); /* add carry */
6772
answer = ~sum; /* truncate to 16 bits */
68-
return (answer);
73+
return answer;
6974
}
7075

7176
/**
@@ -520,7 +525,8 @@ set_socket (socket_type_t socket_type, int *scanner_socket)
520525
* on pinging broadcast address */
521526
if (!error)
522527
{
523-
if ((error = set_broadcast (soc)) != 0)
528+
error = set_broadcast (soc);
529+
if (error != 0)
524530
return error;
525531
}
526532

@@ -542,30 +548,38 @@ set_all_needed_sockets (scanner_t *scanner, alive_test_t alive_test)
542548
boreas_error_t error = NO_ERROR;
543549
if (alive_test & ALIVE_TEST_ICMP)
544550
{
545-
if ((error = set_socket (ICMPV4, &(scanner->icmpv4soc))) != 0)
551+
error = set_socket (ICMPV4, &(scanner->icmpv4soc));
552+
if (error != 0)
546553
return error;
547-
if ((error = set_socket (ICMPV6, &(scanner->icmpv6soc))) != 0)
554+
error = set_socket (ICMPV6, &(scanner->icmpv6soc));
555+
if (error != 0)
548556
return error;
549557
}
550558

551559
if ((alive_test & ALIVE_TEST_TCP_ACK_SERVICE)
552560
|| (alive_test & ALIVE_TEST_TCP_SYN_SERVICE))
553561
{
554-
if ((error = set_socket (TCPV4, &(scanner->tcpv4soc))) != 0)
562+
error = set_socket (TCPV4, &(scanner->tcpv4soc));
563+
if (error != 0)
555564
return error;
556-
if ((error = set_socket (TCPV6, &(scanner->tcpv6soc))) != 0)
565+
error = set_socket (TCPV6, &(scanner->tcpv6soc));
566+
if (error != 0)
557567
return error;
558-
if ((error = set_socket (UDPV4, &(scanner->udpv4soc))) != 0)
568+
error = set_socket (UDPV4, &(scanner->udpv4soc));
569+
if (error != 0)
559570
return error;
560-
if ((error = set_socket (UDPV6, &(scanner->udpv6soc))) != 0)
571+
error = set_socket (UDPV6, &(scanner->udpv6soc));
572+
if (error != 0)
561573
return error;
562574
}
563575

564576
if ((alive_test & ALIVE_TEST_ARP))
565577
{
566-
if ((error = set_socket (ARPV4, &(scanner->arpv4soc))) != 0)
578+
error = set_socket (ARPV4, &(scanner->arpv4soc));
579+
if (error != 0)
567580
return error;
568-
if ((error = set_socket (ARPV6, &(scanner->arpv6soc))) != 0)
581+
error = set_socket (ARPV6, &(scanner->arpv6soc));
582+
if (error != 0)
569583
return error;
570584
}
571585

boreas/util_tests.c

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,31 @@ __wrap_setsockopt (__attribute__ ((unused)) int sockfd,
6565
return (int) mock (sockfd, level, optname, optval, optlen);
6666
}
6767

68+
/* in_cksum */
69+
70+
Ensure (util, in_cksum_small)
71+
{
72+
int len;
73+
// https://web.archive.org/web/20020916085726/http://www.netfor2.com/checksum.html
74+
uint16_t data[] = {0x0100, 0xF203, 0xF4F5, 0xF6F7};
75+
76+
len = sizeof (data); // len is in bytes
77+
assert_that (in_cksum ((uint16_t *) data, len), is_equal_to (0x210E));
78+
}
79+
80+
Ensure (util, in_cksum_bigger)
81+
{
82+
int len;
83+
// https://en.wikipedia.org/wiki/Internet_checksum
84+
uint16_t data[] = {0x4500, 0x0073, 0x0000, 0x4000, 0x4011,
85+
0xC0A8, 0x0001, 0xC0A8, 0x00C7};
86+
87+
len = sizeof (data); // len is in bytes
88+
assert_that (in_cksum ((uint16_t *) data, len), is_equal_to (0xB861));
89+
}
90+
91+
/* set_all_needed_sockets */
92+
6893
Ensure (util, set_all_needed_sockets)
6994
{
7095
g_socket_use_real = false;
@@ -214,6 +239,8 @@ main (int argc, char **argv)
214239

215240
suite = create_test_suite ();
216241

242+
add_test_with_context (suite, util, in_cksum_small);
243+
add_test_with_context (suite, util, in_cksum_bigger);
217244
add_test_with_context (suite, util, fill_ports_array);
218245
add_test_with_context (suite, util, set_all_needed_sockets);
219246
add_test_with_context (suite, util, set_socket);

0 commit comments

Comments
 (0)