bluez5: fix some coverity issues

Missing null pointer checks, wrong array indices, uninitialized/unused
variables.
This commit is contained in:
Pauli Virtanen 2025-06-14 13:50:51 +03:00
parent 26b09b0ee3
commit 7f2bdab8ea
5 changed files with 7 additions and 9 deletions

View file

@ -549,8 +549,9 @@ static bool rfcomm_hw_volume_enabled(struct rfcomm *rfcomm)
static void rfcomm_emit_volume_changed(struct rfcomm *rfcomm, int id, int hw_volume)
{
struct spa_bt_transport_volume *t_volume;
bool valid_volume = (id == SPA_BT_VOLUME_ID_RX || id == SPA_BT_VOLUME_ID_TX);
if ((id == SPA_BT_VOLUME_ID_RX || id == SPA_BT_VOLUME_ID_TX) && hw_volume >= 0) {
if (valid_volume && hw_volume >= 0) {
rfcomm->volumes[id].active = true;
rfcomm->volumes[id].hw_volume = hw_volume;
}
@ -571,7 +572,7 @@ static void rfcomm_emit_volume_changed(struct rfcomm *rfcomm, int id, int hw_vol
spa_bt_transport_emit_volume_changed(rfcomm->transport);
}
if (rfcomm->telephony_ag) {
if (rfcomm->telephony_ag && valid_volume) {
rfcomm->telephony_ag->volume[id] = hw_volume;
telephony_ag_notify_updated_props(rfcomm->telephony_ag);
}

View file

@ -4204,7 +4204,7 @@ static int transport_set_delay(void *data, int64_t delay_nsec)
if (!(transport->profile & SPA_BT_PROFILE_A2DP_DUPLEX))
return -ENOTSUP;
value = SPA_CLAMP(delay_nsec / (100 * SPA_NSEC_PER_USEC), 0, 10 * UINT16_MAX);
value = SPA_CLAMP(delay_nsec / (100 * SPA_NSEC_PER_USEC), 0, UINT16_MAX);
if (transport->delay_us == 100 * value)
return 0;
@ -4362,7 +4362,7 @@ static bool codec_switch_check_endpoint(struct spa_bt_remote_endpoint *ep,
spa_autofree char *path = NULL;
uint32_t ep_profile;
if (!ep->uuid || !ep->device)
if (!ep || !ep->uuid || !ep->device)
return false;
ep_profile = spa_bt_profile_from_uuid(ep->uuid);

View file

@ -170,7 +170,7 @@ static int codec_start_decode (void *data,
const void *src, size_t src_size, uint16_t *seqnum, uint32_t *timestamp)
{
struct impl *this = data;
size_t consumed;
size_t consumed = 0;
if (is_zero_packet(src, src_size))
return -EINVAL;

View file

@ -158,7 +158,7 @@ static int codec_start_decode (void *data,
const void *src, size_t src_size, uint16_t *seqnum, uint32_t *timestamp)
{
struct impl *this = data;
size_t consumed;
size_t consumed = 0;
if (is_zero_packet(src, src_size))
return -EINVAL;

View file

@ -177,7 +177,6 @@ static gboolean chr_handle_acquire(Bluez5GattCharacteristic1 *object,
int res;
GUnixFDList *fd_list = NULL;
GVariant *fd_handle = NULL;
GError *err = NULL;
if ((write && (impl->cb->acquire_write == NULL)) ||
(!write && (impl->cb->acquire_notify == NULL))) {
@ -230,8 +229,6 @@ fail:
if (fds[1] >= 0)
close(fds[1]);
if (err)
g_error_free(err);
g_clear_pointer(&fd_handle, g_variant_unref);
g_clear_object(&fd_list);
g_dbus_method_invocation_return_dbus_error(invocation,