Commit Graph

2578 Commits

Author SHA1 Message Date
Richard Hughes
1a077289bc Speed up daemon startup by 15%
During my fwupd startup fu_plugin_has_custom_flag gets called 21 times
which causes all HWIDs to be enumerated with 346 calls to the quite
expensive fu_context_lookup_quirk_by_id() function.

Move the flag to a private hashset and enumerate the HWIDs only during
startup. There's nothing plugin specific about them anyway...
2021-11-03 07:14:37 +00:00
Richard Hughes
8917a11208 logitech-hidpp: Fix a tiny memory leak for an error path 2021-11-02 13:47:56 +00:00
Richard Hughes
fa5994f3aa logitech-hidpp: Fix a tiny memory leak for ID6 devices 2021-11-02 13:47:56 +00:00
Richard Hughes
510a9bfe0c Merge tpm-eventlog into the tpm plugin
This is so much less complicated.
2021-11-02 13:47:25 +00:00
Richard Hughes
b0f80757f5 Add a test UEFI device that can be used to test capsules
To use this use `sudo systemctl edit fwupd.service` and set
`Environment="FWUPD_SYSFSFWDIR=/usr/share/installed-tests/fwupd"`

Fixes https://github.com/fwupd/fwupd/issues/3441
2021-11-02 08:09:25 +00:00
Richard Hughes
e29c74180c Move the TPM handling into the TPM place
The fact that it currently lives in uefi-capsule is a historical
accident, and it doesn't really belong to tpm-eventlog either.

Fixes some of https://github.com/fwupd/fwupd/issues/3901
2021-11-01 14:51:27 +00:00
Richard Hughes
a026a177d9 Fix the CSME CVE detection
14.1.53.1649 appeared which showed that the logic was funcky.
2021-11-01 11:22:08 +00:00
Richard Hughes
a17222f8a0 trivial: Add some more details to the HSI specification 2021-11-01 08:22:29 +00:00
Richard Hughes
ad12a809e3 Add a configure option for fastboot support
Fixes https://github.com/fwupd/fwupd/issues/3920
2021-10-30 08:55:07 -05:00
James Beddek
d7bedc20af synaptics-rmi: fix meson configure when building tests
if synaptics-rmi is disabled and gnutls is not used, the configure fails

move the synaptics-rmi test check behind the "plugin_synaptics_rmi" option
2021-10-30 07:16:57 -05:00
syabbashp
3db727d460 Add support for HP Thunderbolt Dock G4 2021-10-29 18:33:15 +01:00
bennyLucky
b33a162b4c dell-dock:Add atomic support 2021-10-28 19:32:22 +08:00
Richard Hughes
9b0316ce25 linux-swap: Fix a trivial memory leak in the self tests 2021-10-27 19:08:20 +01:00
Richard Hughes
003f27311e synaptics-rmi: Fix building the self tests on s390x 2021-10-27 17:10:37 +01:00
Richard Hughes
5dee779dc9 pixart-rf: Don't show the HID report unless debugging the plugin 2021-10-27 15:57:53 +01:00
Richard Hughes
39e006e563 wacom-usb: Fix a potentially unsafe memcpy()
Spotted by Coverity.
2021-10-27 15:57:53 +01:00
Richard Hughes
128a3afaa9 logitech-bulkcontroller: Fix a potential NULL dereference on error
Spotted by Coverity.
2021-10-27 15:57:53 +01:00
Richard Hughes
51a1bc5b66 thunderbolt: Fix a small memory leak at startup 2021-10-27 15:57:53 +01:00
Richard Hughes
758f34548c superio: Add missing parent finalizer 2021-10-27 15:57:53 +01:00
Richard Hughes
e4513fa7d0 pixart-rf: Add missing parent finalizer 2021-10-27 15:57:53 +01:00
Richard Hughes
aff4ff7183 parade-lspcon: Add missing parent finalizer 2021-10-27 15:57:53 +01:00
Richard Hughes
d0162352a6 logitech-hidpp: Fix a small memory leak at startup 2021-10-27 15:57:53 +01:00
Jason Gerecke
9c6ddd9309 wacom_usb: Update quirks with new PIDs for 3rd-gen Intuos BT
Wacom has begun migrating its current Intuos product line to a new
Bluetooth chipset. This new revision uses new PIDs as well so we
need to update the quirks list.
2021-10-26 18:15:23 +01:00
Jason Gerecke
21959e2527 wacom_usb: Introduce bluetooth-id6 module
Wacom is beginning to integrate a new Bluetooth chipset in their
devices. This chipset uses a somewhat different flash protocol
and requires the creation of a new fwupd module. Chipsets using
this new protocol are identified in the firmware descriptor with
ID 0x06, leading to our choice of module name: "bluetooth-id6".

The new chipset is first appearing in a minor update to the Wacom
Intuos (CTL-4100WL/CTL-6100WL) line. These devices do not support
the firmware descriptor interface, requiring us to statically assign
it as a module in the legacy codepath if any Bluetooth support is
found. This clutters the output of the `get-devices` command but the
update CAB files ensure the correct module is used depending on PID.
2021-10-26 18:15:23 +01:00
Jason Gerecke
49a9a29158 wacom_usb: Make busy-timeout an argument of set_feature
Timeout characteristics of the start/data/end commands can vary between
modules. Rather than leaving `fu_wac_module_set_feature` responsible for
setting a globally-reasonable timeout, allow the callers to specify a
locally-optimal value instead.
2021-10-26 18:15:23 +01:00
Sanjay Sheth
3814b0be12
logitech-bulkcontroller: Set device time and timezone
Also, use UTC for older glib version.
2021-10-26 09:50:28 +01:00
Jarvis Jiang
8d6dbd9009 modem-manager: Add the logic of inhibiting modemmanager device in mbim-qdu
It may make sense to have the modem not doing anything during the upgrade,
so the inhibition would make total sense.

Signed-off-by: Jarvis Jiang <jarvis.w.jiang@gmail.com>
2021-10-25 09:23:44 +01:00
Sanjay Sheth
3c8339c9eb logitech-bulkcontroller: Wait and verify firmware upgrade status 2021-10-22 10:38:59 -07:00
Richard Hughes
28678235cd Move the fuzzing files into the plugin directories
We only had to pile everything into the src/fuzzing/firmware directory
because honggfuzz could not cope with more than one input path.

This way each plugin is self contained and easy to copy.
Also, install the fuzzing builder objects as this fixes the installed
tests when srcdir does not exist.

Based on a patch by Jan Tojnar <jtojnar@gmail.com>, many thanks.
2021-10-22 15:24:05 +01:00
Richard Hughes
db7dc60ffd wacom-usb: Fix writing the fuzzing data from a builder.xml file 2021-10-22 14:58:24 +01:00
Richard Hughes
09f1406c17 synaptics-cape: Add ->write() and ->build() vfuncs
This allows us to rebuild the fuzzing data from the builder.xml file.
2021-10-22 14:58:24 +01:00
Richard Hughes
3ea1ef81b2 ccgx: Fix a regression when porting to fu_common_strnsplit_full()
We have to ignore the leading ':' for data records.
2021-10-22 14:58:24 +01:00
Richard Hughes
3a63f5bd9b trivial: Make the SREC parser more spec compliant
Only upgrade S5 into S6 when there are over 0xFFFF records.
2021-10-22 14:58:24 +01:00
Richard Hughes
2d00cda464 Remove PLUGINBUILDDIR and use G_TEST_SRCDIR and G_TEST_BUILDDIR instead
This allows us to override the location we load data files from, which
allows us to do more kinds of installed tests in the future.

Also, move the global data/tests content into the place that it is used
as it was getting impossible to manage.
2021-10-21 18:36:22 +01:00
Mario Limonciello
0914f81336 dell-dock: enumerate hub after EC 2021-10-21 10:32:34 -05:00
Richard Hughes
6235a8222a Share the Common Flash Memory Interface quirks between plugins
Now two plugins are using hardcoded SPI constants for various CFI chips,
and it makes sense to have some common quirk data that can be used by
both.

Add a FuSpiChip helper object that can be used by FuDevice subclasses
to get the specific SPI commands to use for each flash ID.
2021-10-20 12:19:39 +01:00
Sean Rhodes
130da188eb
plugins/uefi-capsule: Remove ux capsule for StarLite (#3885)
UX capsule only seems to work on certain distros and firmware versions.
Restoring for reliability.

Signed-off-by: Sean Rhodes <sean@starlabs.systems>
2021-10-20 08:05:16 +01:00
Richard Hughes
3fc635e144 Remove honggfuzz support
This has not worked well in some time, and nobody noticed. The
alternative Google clusterfuzz support is better in every way and gets
run as part of CI.
2021-10-19 19:20:05 +01:00
Denis Pynkin
5984333028 steelseries: add Stratus gamepads support
Added support for Stratus-series gamepads and dongles.

Signed-off-by: Denis Pynkin <denis.pynkin@collabora.com>
2021-10-19 18:34:51 +03:00
JackZhang-Primax
4ff3c1a011 Update pixart-rf.quirk
Add more supported devices Vivaldi2
2021-10-18 22:55:49 -05:00
Richard Hughes
27e40c3025 trivial: Add more fuzzing alignment checks
In reality these are not super interesting as they only happen on
`->write()` and not `->parse()`.

In other news, the fuzzer now appreciates how critical the alignment
is, which is probably a good thing generally.

Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=40088
2021-10-18 20:02:03 +01:00
Sanjay Sheth
4c5d00886a logitech-bulkcontroller: Continuously capture device messages 2021-10-15 11:20:16 -07:00
Richard Hughes
8e24fa77cf cfu: Add an initial outline CFU plugin
There's no actual hardware to test this against yet, but this is how I
would lay out a plugin if there was.

We still need to work out a generic encapsulation for the offer and
payload (for each component and bank) so this can work with LVFS and
fwupd.
2021-10-15 18:38:36 +01:00
Richard Hughes
bd43647554 Add fu_usb_device_new_with_context() helpers
This means the context is set at construction time, which is much less
fragile than setting the context manually.
2021-10-15 15:59:34 +01:00
Thomas Deutschmann
a4549f5035 elanfp plugin requires gusb 2021-10-15 09:17:47 -05:00
Richard Hughes
88592df086 rts54hub: Use demo firmware on the evaluation board for the tests
This avoids clashing with real-world devices that have the same VID/PID.
Many thanks to Ricky WU <ricky_wu@realtek.com> for all the help.

Fixes: https://github.com/fwupd/fwupd/issues/3835
2021-10-13 20:07:15 +08:00
Richard Hughes
852a6dbdc2 redfish: Handle EPERM when testing devices with a IPMI device
Fixes https://github.com/fwupd/fwupd/issues/3849
2021-10-12 19:12:57 -05:00
Richard Hughes
d653c8de26 wacom-usb: Un-pack the descriptor to fix -Waddress-of-packed-member warnings
This isn't read in-situ since switching to fu_common_read_uintXX_safe()
and it's only used to calculate the size of the block.
2021-10-12 09:42:59 -05:00
Richard Hughes
3acbe9bed3 trivial: Fix a -Waddress-of-packed-member warning 2021-10-12 09:42:59 -05:00
Richard Hughes
f41fd3af46 vli: Fix a potential crash when dumping Parade devices 2021-10-12 09:42:59 -05:00