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:55 +0200
commit363e14b1c0fdb4f2d10d06037c729ecd3685fbbe (patch)
tree21aca58efad45dd39e5452b0d7c0762f28a47bb5
parentc5c3fbd1b3571645d436280e5515442da93e1505 (diff)
downloadhardware_replicant_libsamsung-ril-main.tar.gz
hardware_replicant_libsamsung-ril-main.tar.bz2
hardware_replicant_libsamsung-ril-main.zip
srs-client: srs_client_send: do more precise lockingHEADreplicant-11-nlnet-eu-grant-825310-replicant-updatereplicant-6.0mastermain
The following code: memset(&message, 0, sizeof(message)); message.command = command; message.data = data; message.size = size; 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-client/srs-client.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/srs-client/srs-client.c b/srs-client/srs-client.c
index d16c597..6f3b467 100644
--- a/srs-client/srs-client.c
+++ b/srs-client/srs-client.c
@@ -270,8 +270,6 @@ int srs_client_send(struct srs_client *client, unsigned short command,
if (client == NULL || client->fd < 0)
return -1;
- SRS_CLIENT_LOCK(client);
-
memset(&message, 0, sizeof(message));
message.command = command;
message.data = data;
@@ -288,6 +286,8 @@ int srs_client_send(struct srs_client *client, unsigned short command,
memcpy(p, message.data, message.size);
}
+ SRS_CLIENT_LOCK(client);
+
memset(&timeout, 0, sizeof(timeout));
timeout.tv_usec = 300;