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 <[email protected]>
---
 srs.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

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));
-- 
2.37.2

_______________________________________________
Replicant mailing list
[email protected]
https://lists.osuosl.org/mailman/listinfo/replicant

Reply via email to