Commit Graph

24195 Commits

Author SHA1 Message Date
Lubomir Rintel
bc614783f0 cli: take a reference to device in AddAndActivateInfo
The device could vanish in between.
2019-08-02 23:00:26 +02:00
Lubomir Rintel
69ed759ddf cli: remove an unnecessary condition
Do not check for password when creating a simple connection object for
"nmcli dev wifi connect".

This makes no difference in practice. The password is checked for
existence later on and the connection instance is created anyway. This
just makes things look a bit more consistent.
2019-08-02 23:00:26 +02:00
Lubomir Rintel
cc3681c96c cli: (trivial) rename do_device_wifi_connect_network() to do_device_wifi_connect()
This is consistent with the surrounding code and avoids lines
unnecessarily too wide.
2019-08-02 23:00:26 +02:00
Thomas Haller
79660f1f5b supplicant: mark static arrays as const and static in "nm-supplicant-settings-verify.c"
They should be "static" and only visible to this source file.

Also, they should be "const", that allows the linker to place them
into read-only memory.

(cherry picked from commit 722b167953)
2019-08-02 18:19:49 +02:00
Thomas Haller
da933ffe2a supplicant: don't put binary data in error message for supplicant
For better or worse, the API does not require the value to be a
UTF-8 string. We cannot just concatenate binary to a string.
Instead, backslash escape it with utf8safe-escape.

Also, this will shut up a (wrong) coverity warning at this place.

(cherry picked from commit 55143dad95)
2019-08-02 18:19:49 +02:00
Thomas Haller
d99925a1b0 supplicant: fix nm_supplicant_settings_verify_setting() honoring the string length
We must not just pretend that the value is a NULL terminated string.
That's why we have the length argument.

(cherry picked from commit 9ed26de3da)
2019-08-02 18:19:49 +02:00
Thomas Haller
3ebad253e8 device/bluetooth: explicitly ignore return value of ioctl() in nm_bluez5_dun_cleanup()
Coverity doesn't like us not checking the result.

(cherry picked from commit 526601e4f3)
2019-08-02 18:19:49 +02:00
Thomas Haller
3ebeb43c5f libnm: remove dead code in nm_team_setting_config_get()
I was aware that this code is not reachable. But for consistency, it
seems better to be explict about it (to avoid future bugs when refactoring).

Anyway, Coverity complains about it. So assert instead.

(cherry picked from commit 643bc4ca22)
2019-08-02 18:19:49 +02:00
Thomas Haller
722b167953 supplicant: mark static arrays as const and static in "nm-supplicant-settings-verify.c"
They should be "static" and only visible to this source file.

Also, they should be "const", that allows the linker to place them
into read-only memory.
2019-08-02 18:18:30 +02:00
Thomas Haller
55143dad95 supplicant: don't put binary data in error message for supplicant
For better or worse, the API does not require the value to be a
UTF-8 string. We cannot just concatenate binary to a string.
Instead, backslash escape it with utf8safe-escape.

Also, this will shut up a (wrong) coverity warning at this place.
2019-08-02 18:18:30 +02:00
Thomas Haller
9ed26de3da supplicant: fix nm_supplicant_settings_verify_setting() honoring the string length
We must not just pretend that the value is a NULL terminated string.
That's why we have the length argument.
2019-08-02 18:18:30 +02:00
Thomas Haller
526601e4f3 device/bluetooth: explicitly ignore return value of ioctl() in nm_bluez5_dun_cleanup()
Coverity doesn't like us not checking the result.
2019-08-02 18:10:58 +02:00
Thomas Haller
643bc4ca22 libnm: remove dead code in nm_team_setting_config_get()
I was aware that this code is not reachable. But for consistency, it
seems better to be explict about it (to avoid future bugs when refactoring).

Anyway, Coverity complains about it. So assert instead.
2019-08-02 18:10:58 +02:00
Thomas Haller
9168dea0da device: trigger a connectivity check when device disconnects
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/issues/219

https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/225
(cherry picked from commit 88bcf87ad9)
2019-08-02 17:53:34 +02:00
Thomas Haller
88bcf87ad9 device: trigger a connectivity check when device disconnects
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/issues/219

https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/225
2019-08-02 17:50:44 +02:00
Thomas Haller
0df7f74c29 core: assert for valid arguments in _addresses_sort_cmp()
Coverity thinks that the arguments could be %NULL. Add an assertion,
hoping to silence coverity.

(cherry picked from commit 1b30797bc1)
2019-08-02 17:13:50 +02:00
Thomas Haller
1b30797bc1 core: assert for valid arguments in _addresses_sort_cmp()
Coverity thinks that the arguments could be %NULL. Add an assertion,
hoping to silence coverity.
2019-08-02 17:13:16 +02:00
Beniamino Galvani
f7b1b1030b tui: newt: remove NULL checks after dereference
priv->start_buttons and priv->end_buttons are initialized at
construction and never changed and so the checks are not needed.

(cherry picked from commit 50ae9c936c)
2019-08-02 16:29:20 +02:00
Beniamino Galvani
fbdfc3f79c n-dhcp4: remove dead code
Reported by coverity.

(cherry picked from commit a32976568c)
2019-08-02 16:29:19 +02:00
Beniamino Galvani
50ae9c936c tui: newt: remove NULL checks after dereference
priv->start_buttons and priv->end_buttons are initialized at
construction and never changed and so the checks are not needed.
2019-08-02 16:26:34 +02:00
Beniamino Galvani
a32976568c n-dhcp4: remove dead code
Reported by coverity.
2019-08-02 16:26:33 +02:00
Thomas Haller
51b3afa2ee platform/tests: relax assertion for platform signal in test_slave()
Seen on gitlab-ci.

  NMPlatformSignalAssert: ../src/platform/tests/test-link.c:260, test_slave(): failure to accept signal [0,2] times: link-changed-changed ifindex 15 (3 times received)
  ERROR: src/platform/tests/test-link-linux - too few tests run (expected 76, got 6)
  ERROR: src/platform/tests/test-link-linux - exited with status 133 (terminated by signal 5?)

(cherry picked from commit 483de2bb93)
2019-08-02 13:38:32 +02:00
Thomas Haller
483de2bb93 platform/tests: relax assertion for platform signal in test_slave()
Seen on gitlab-ci.

  NMPlatformSignalAssert: ../src/platform/tests/test-link.c:260, test_slave(): failure to accept signal [0,2] times: link-changed-changed ifindex 15 (3 times received)
  ERROR: src/platform/tests/test-link-linux - too few tests run (expected 76, got 6)
  ERROR: src/platform/tests/test-link-linux - exited with status 133 (terminated by signal 5?)
2019-08-02 13:34:56 +02:00
Lubomir Rintel
f2fe6c03ee manager: don't treat the initramfs-configured DHCP connections as generated
These are special -- initramfs configured them and killed dhclient. Bad
things would happen if we let the addresses expire though.

Let's act as if initramfs actually passed the configuration to us.
It actually tries to do so by the means of writing an ifcfg file, but
that one is too broken to be useful, so the ifcfg-rh plugin ignores it.
Notably, it doesn't have the actual addresses or correct BOOTPROTO.
The generated connection is better.

Co-authored-by: Thomas Haller <thaller@redhat.com>
(cherry picked from commit acf3e0092a)
2019-08-02 12:47:45 +02:00
Thomas Haller
115184f5bd adsl: avoid coverity false-positive when using strcpy() for interface name
CID 59391 (#1 of 1): Copy into fixed size buffer (STRING_OVERFLOW)
  31. fixed_size_dest: You might overrun the 16-character fixed-size string be.ifspec.spec.ifname by copying priv->nas_ifname without checking the length.

(cherry picked from commit 23fa1b3272)
2019-08-02 11:48:35 +02:00
Thomas Haller
7d603b7e35 libnm: fix parsing invalid "pvid" attribute in GVariant in _nm_utils_bridge_vlans_from_dbus()
Complained by Coverity.

(cherry picked from commit 9f4302e132)
2019-08-02 11:48:35 +02:00
Thomas Haller
6c8f35a267 n-dhcp4: avoid "-Werror=declaration-after-statement" warning with static_assert
When we build n-dhcp4 for NetworkManager we get a compiler warning.
This can also be reproduced by building n-dhcp4 alone:

  $ CFLAGS='-Werror=declaration-after-statement' meson build && ninja -C build
  ...
  [36/47] Compiling C object 'src/25a6634@@ndhcp4-private@sta/n-dhcp4-outgoing.c.o'.
  FAILED: src/25a6634@@ndhcp4-private@sta/n-dhcp4-outgoing.c.o
  ccache cc -Isrc/25a6634@@ndhcp4-private@sta -Isrc -I../src -Isubprojects/c-list/src -I../subprojects/c-list/src -Isubprojects/c-siphash/src -I../subprojects/c-siphash/src -Isubprojects/c-stdaux/src -I../subprojects/c-stdaux/src -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -std=c11 -g -D_GNU_SOURCE -Werror=declaration-after-statement -fPIC -fvisibility=hidden -fno-common -MD -MQ 'src/25a6634@@ndhcp4-private@sta/n-dhcp4-outgoing.c.o' -MF 'src/25a6634@@ndhcp4-private@sta/n-dhcp4-outgoing.c.o.d' -o 'src/25a6634@@ndhcp4-private@sta/n-dhcp4-outgoing.c.o' -c ../src/n-dhcp4-outgoing.c
  ../src/n-dhcp4-outgoing.c: In function ‘n_dhcp4_outgoing_new’:
  ../src/n-dhcp4-outgoing.c:63:9: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement]
     63 |         static_assert(N_DHCP4_NETWORK_IP_MINIMUM_MAX_SIZE >= N_DHCP4_OUTGOING_MAX_PHDR +
        |         ^~~~~~~~~~~~~

(cherry picked from commit 9e7ca3e091)
2019-08-02 11:48:35 +02:00
Thomas Haller
23fa1b3272 adsl: avoid coverity false-positive when using strcpy() for interface name
CID 59391 (#1 of 1): Copy into fixed size buffer (STRING_OVERFLOW)
  31. fixed_size_dest: You might overrun the 16-character fixed-size string be.ifspec.spec.ifname by copying priv->nas_ifname without checking the length.
2019-08-02 11:47:06 +02:00
Thomas Haller
9f4302e132 libnm: fix parsing invalid "pvid" attribute in GVariant in _nm_utils_bridge_vlans_from_dbus()
Complained by Coverity.
2019-08-02 11:47:06 +02:00
Thomas Haller
9e7ca3e091 n-dhcp4: avoid "-Werror=declaration-after-statement" warning with static_assert
When we build n-dhcp4 for NetworkManager we get a compiler warning.
This can also be reproduced by building n-dhcp4 alone:

  $ CFLAGS='-Werror=declaration-after-statement' meson build && ninja -C build
  ...
  [36/47] Compiling C object 'src/25a6634@@ndhcp4-private@sta/n-dhcp4-outgoing.c.o'.
  FAILED: src/25a6634@@ndhcp4-private@sta/n-dhcp4-outgoing.c.o
  ccache cc -Isrc/25a6634@@ndhcp4-private@sta -Isrc -I../src -Isubprojects/c-list/src -I../subprojects/c-list/src -Isubprojects/c-siphash/src -I../subprojects/c-siphash/src -Isubprojects/c-stdaux/src -I../subprojects/c-stdaux/src -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -std=c11 -g -D_GNU_SOURCE -Werror=declaration-after-statement -fPIC -fvisibility=hidden -fno-common -MD -MQ 'src/25a6634@@ndhcp4-private@sta/n-dhcp4-outgoing.c.o' -MF 'src/25a6634@@ndhcp4-private@sta/n-dhcp4-outgoing.c.o.d' -o 'src/25a6634@@ndhcp4-private@sta/n-dhcp4-outgoing.c.o' -c ../src/n-dhcp4-outgoing.c
  ../src/n-dhcp4-outgoing.c: In function ‘n_dhcp4_outgoing_new’:
  ../src/n-dhcp4-outgoing.c:63:9: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement]
     63 |         static_assert(N_DHCP4_NETWORK_IP_MINIMUM_MAX_SIZE >= N_DHCP4_OUTGOING_MAX_PHDR +
        |         ^~~~~~~~~~~~~
2019-08-02 11:34:20 +02:00
Thomas Haller
368849b589 n-acd: fix leaking socket handle in n_acd_socket_new() when setsockopt() fails
Found by Coverity.

(cherry picked from commit c8cee413dd)
2019-08-02 11:30:30 +02:00
Thomas Haller
c8cee413dd n-acd: fix leaking socket handle in n_acd_socket_new() when setsockopt() fails
Found by Coverity.
2019-08-02 11:26:25 +02:00
Thomas Haller
b6d9693705 all: merge branch 'th/coverity'
Various fixes for Coverity. For the most part, these are refactorings
to avoid false positive warnings.

(cherry picked from commit d3bd7b9bee)
2019-08-02 11:12:52 +02:00
Thomas Haller
d3bd7b9bee all: merge branch 'th/coverity'
Various fixes for Coverity. For the most part, these are refactorings
to avoid false positive warnings.
2019-08-02 11:11:24 +02:00
Thomas Haller
bedafc661a shared: refactor nm_utils_g_slist_strlist_cmp() to avoid dead-code warning from Coverity
Coverity sees that "return 0" cannot be reached. Refactor the code,
to avoid the warning.

(cherry picked from commit 8fb954b81d)
2019-08-02 11:10:51 +02:00
Thomas Haller
14debab83a shared: try avoid coverity warning in _nm_utils_user_data_unpack()
Coverity says

  CID 202453 (#1 of 1): Wrong sizeof argument (SIZEOF_MISMATCH)suspicious_sizeof:
  Passing argument user_data of type gconstpointer and argument (gsize)nargs * 8UL /* sizeof (gconstpointer) */ to function g_slice_free1 is suspicious.

Let's pass instead the "data" pointer. It's the same, but maybe that
avoids the warning.

(cherry picked from commit d76df4c139)
2019-08-02 11:10:51 +02:00
Thomas Haller
709570b8e9 shared: explicitly ignore return value of g_utf8_validate()
Coverity doesn't like us ignoring the return value, although
we really only care about the "p" output pointer.

Try casting the result to (void), maybe that silences Coverity.

(cherry picked from commit e6fa3ce2df)
2019-08-02 11:10:51 +02:00
Thomas Haller
2ecc7e8cb5 initrd: avoid coverity warning in parse_ip() about "Dereference before null check"
get_word() only moves the "argument" pointer forward. It never sets it
to %NULL. Also, above we already dereference argument, so Coverity thinks
that this NULL check indicates a bug.

Drop it to silence Coverity.

(cherry picked from commit 4596d7793c)
2019-08-02 11:10:51 +02:00
Thomas Haller
c347e81a1d libnm/keyfile: silence "Identical code for different branches" complaint in _read_setting_wireguard_peer()
That both branches of the "if" do the same, looks suspicious to Coverity.
Work around it by not doing it.

(cherry picked from commit e001424ae2)
2019-08-02 11:10:51 +02:00
Thomas Haller
e4001e50da device/wireguard: fix explicit_bzero() call on peers buffer in link_config()
Correctly warned by coverity.

(cherry picked from commit 458a2edbb2)
2019-08-02 11:10:51 +02:00
Thomas Haller
fec1c760ec device/adsl: restore brfd value on error in br2684_assign_vcc()
Warned by coverity: we assert above that brfd is -1, so we must always
restore it to -1 in the error case.

Technically, not a problem because socket() is documented to return
only -1 on error already. Apparently coverity does not believe that.

(cherry picked from commit 5b9a848a82)
2019-08-02 11:10:51 +02:00
Thomas Haller
702224ec0b core: assert for valid arguments in sort_captured_addresses() and _addresses_sort_cmp()
Coverity thinks that the arguments could be %NULL. Add an assertion,
hoping to silence coverity.

(cherry picked from commit 8988a12ade)
2019-08-02 11:10:50 +02:00
Thomas Haller
ee153744a9 libnm: avoid NM_CONST_MAX() in enum definition for NMTeamAttribute
This confuses coverity. Just use MAX(). MAX() is usually not preferred
as it evaluates the arguments more than once. But in this case, it is of
course fine.

  CID 202433 (#1 of 1): Unrecoverable parse warning (PARSE_ERROR)1.
  expr_not_constant: expression must have a constant value

(cherry picked from commit 186d559d63)
2019-08-02 11:10:50 +02:00
Thomas Haller
4952e945dc libnm: try to avoid coverity warning in assertion()
Coverity thinks that this could be NULL sometimes. Try to check for that
to shut up the warning.

(cherry picked from commit f61e274df9)
2019-08-02 11:10:50 +02:00
Thomas Haller
12321b1745 libnm: fix assertions in NMSettingVlan's priority API
Most of these functions did not ever return failure. The functions
were assertin that the input was valid (and then returned a special
value). But they did not fail under regular conditions.

Fix the gtk-doc for some of these to not claim to be able to fail.

For some (like nm_setting_vlan_add_priority_str() and
nm_setting_vlan_get_priority()), actually let them fail for valid
input (instead of asserting).

(cherry picked from commit b5793b74ca)
2019-08-02 11:10:50 +02:00
Thomas Haller
96c999e085 cli: fix type for loop variable in _get_fcn_vlan_xgress_priority_map()
Coverity correctly points out that nm_setting_vlan_get_num_priorities() can return
a negative value (-1 on assertion). Handle that by using the right integer type.

(cherry picked from commit af4a41cc4c)
2019-08-02 11:10:50 +02:00
Thomas Haller
650c0cd622 cli: fix dereferncing NULL pointer in parse_passwords() with empty file
Warned by coverity.

(cherry picked from commit ec982ceb8e)
2019-08-02 11:10:50 +02:00
Thomas Haller
ae1f6de899 cli: use gs_free_error in nmcli's "connections.c"
(cherry picked from commit bee0b20e3f)
2019-08-02 11:10:50 +02:00
Thomas Haller
7d5bbe5453 platform: drop checks for failure of nl80211_alloc_msg()
nl80211_alloc_msg() just allocates some memory, using glib's allocators.
Hence it cannot fail, and we don't need to check for that.

Drop the unnecessary %NULL checks.

(cherry picked from commit 990a7bee9d)
2019-08-02 11:10:50 +02:00
Thomas Haller
3c6252f4fd platform: avoid coverity warning about not checking nla_nest_start() result
Usually we check the result of nla_nest_start(). Also, in most cases where this
function would return %NULL, it's an actual bug. That is, because our netlink
message is allocated with a large buffer, and in most cases we append there a well
known, small amount of data.

To make coverity happy, handle the case and assert.

(cherry picked from commit 243458836a)
2019-08-02 11:10:50 +02:00