From 7c6fa227eac300055c714be839274fc6f7e421cd Mon Sep 17 00:00:00 2001 From: Anton Lundin Date: Wed, 12 Jul 2017 21:23:02 +0200 Subject: Null check before writing to pointer In the serial api for libdivecomputer is ok to send NULL as the int pointer actual, if you dont't care about how many bytes that where actually read or written. This makes sure we don't crash if the ble backend where ever used with such a backend. Signed-off-by: Anton Lundin --- core/qt-ble.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'core') diff --git a/core/qt-ble.cpp b/core/qt-ble.cpp index 967827db1..cb471d119 100644 --- a/core/qt-ble.cpp +++ b/core/qt-ble.cpp @@ -172,7 +172,8 @@ dc_status_t BLEObject::write(const void *data, size_t size, size_t *actual) dc_status_t BLEObject::read(void *data, size_t size, size_t *actual) { - *actual = 0; + if (actual) + *actual = 0; if (receivedPackets.isEmpty()) { QList list = preferredService()->characteristics(); if (list.isEmpty()) @@ -198,7 +199,8 @@ dc_status_t BLEObject::read(void *data, size_t size, size_t *actual) return DC_STATUS_NOMEMORY; memcpy((char *)data, packet.data(), packet.size()); - *actual += packet.size(); + if (actual) + *actual += packet.size(); return DC_STATUS_SUCCESS; } -- cgit v1.2.3-70-g09d2