]> 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>
Sun, 29 Mar 2020 11:47:22 +0000 (13:47 +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 0c48ffdaa051e940670e6ae556626aa93fa2ca21..299a0d75b18ae3f7d98a9a97bf254cf6dad4ba05 100644 (file)
@@ -2051,7 +2051,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);
@@ -2088,7 +2087,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);
        }
 
@@ -2144,7 +2143,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);