]> git.ipfire.org Git - thirdparty/strongswan.git/commitdiff
generator: Make pointer to length field optional
authorTobias Brunner <tobias@strongswan.org>
Tue, 20 Aug 2019 12:53:16 +0000 (14:53 +0200)
committerAndreas Steffen <andreas.steffen@strongswan.org>
Fri, 18 Oct 2019 15:10:30 +0000 (17:10 +0200)
Only useful if we generate an IKE header.

src/libcharon/encoding/generator.c
src/libcharon/encoding/message.c

index f898c87bdf3b208b00edb9b95b8b00a50113d3e2..8c3a9c94e9224c228e9a6702a0409b0b58aba76d 100644 (file)
@@ -431,7 +431,10 @@ METHOD(generator_t, get_chunk, chunk_t,
 {
        chunk_t data;
 
-       *lenpos = (uint32_t*)(this->buffer + this->header_length_offset);
+       if (lenpos)
+       {
+               *lenpos = (uint32_t*)(this->buffer + this->header_length_offset);
+       }
        data = chunk_create(this->buffer, get_length(this));
        if (this->debug)
        {
index 87e84a7cb0f1ea5cf37d3ecc40de35ca53d15158..919e494c91a55d09fbce5f9a9f86a7d4f37c6a41 100644 (file)
@@ -2038,7 +2038,6 @@ METHOD(message_t, fragment, status_t,
        host_t *src, *dst;
        chunk_t data;
        status_t status;
-       uint32_t *lenpos;
        size_t len;
 
        src = this->packet->get_source(this->packet);
@@ -2075,7 +2074,7 @@ METHOD(message_t, fragment, status_t,
                        DESTROY_IF(generator);
                        return status;
                }
-               data = generator->get_chunk(generator, &lenpos);
+               data = generator->get_chunk(generator, NULL);
                len = data.len + (encrypted ? encrypted->get_length(encrypted) : 0);
        }
 
@@ -2131,7 +2130,7 @@ METHOD(message_t, fragment, status_t,
                }
                next = encrypted->payload_interface.get_next_type((payload_t*)encrypted);
                encrypted->generate_payloads(encrypted, generator);
-               data = generator->get_chunk(generator, &lenpos);
+               data = generator->get_chunk(generator, NULL);
                if (!is_encoded(this))
                {
                        encrypted->destroy(encrypted);