summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDenis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>2022-06-28 17:04:23 +0200
committerDenis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>2022-08-31 18:31:00 +0200
commitc5c3fbd1b3571645d436280e5515442da93e1505 (patch)
tree5be8abb2001f70aef1f5fac6ad8060d40fc18642
parentb88baa0bdad1365f12949bf31bc3ac303f37e558 (diff)
downloadhardware_replicant_libsamsung-ril-c5c3fbd1b3571645d436280e5515442da93e1505.tar.gz
hardware_replicant_libsamsung-ril-c5c3fbd1b3571645d436280e5515442da93e1505.tar.bz2
hardware_replicant_libsamsung-ril-c5c3fbd1b3571645d436280e5515442da93e1505.zip
srs: srs_client_send: do more precise locking
The following code: srs_header_setup(&header, message); length = header.length; buffer = calloc(1, length); memcpy(buffer, &header, sizeof(header)); if (message->data != NULL && message->size > 0) { p = (unsigned char *) buffer + sizeof(header); memcpy(p, message->data, message->size); } doesn't depend on shared data structures, so it doesn't need to be guarded by a mutex. Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
-rw-r--r--srs.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/srs.c b/srs.c
index 505210b..cae57cc 100644
--- a/srs.c
+++ b/srs.c
@@ -467,7 +467,6 @@ int srs_client_send(struct ril_client *client, struct srs_message *message)
if (data->client_fd < 0)
return -1;
- RIL_CLIENT_LOCK(client);
srs_header_setup(&header, message);
@@ -480,6 +479,8 @@ int srs_client_send(struct ril_client *client, struct srs_message *message)
memcpy(p, message->data, message->size);
}
+ RIL_CLIENT_LOCK(client);
+
srs_log_send(client, message);
memset(&timeout, 0, sizeof(timeout));