diff options
Diffstat (limited to 'src/serialize.c')
-rw-r--r-- | src/serialize.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/serialize.c b/src/serialize.c index 7961cfe..fa1e878 100644 --- a/src/serialize.c +++ b/src/serialize.c @@ -22,7 +22,7 @@ uint16_t serializer_get_uint16(serialized_buffer_t *buffer) uint16_t ret; if (buffer->buffer_pointer + 2 > buffer->buffer_end) return 0; memcpy(&ret, buffer->buffer_pointer, 2); - *buffer->buffer_pointer += 2; + buffer->buffer_pointer += 2; return net_order_16(ret); } @@ -31,13 +31,14 @@ uint64_t serializer_get_uint64(serialized_buffer_t *buffer) uint64_t ret; if (buffer->buffer_pointer + 8 > buffer->buffer_end) return 0; memcpy(&ret, buffer->buffer_pointer, 8); - *buffer->buffer_pointer += 8; + buffer->buffer_pointer += 8; return net_order_64(ret); } char* serializer_get_string(serialized_buffer_t *buffer) { char *ptr = buffer->buffer_pointer, *start = buffer->buffer_pointer; + if (ptr >= buffer->buffer_end) return NULL; while (ptr < buffer->buffer_end && *ptr) ++ptr; if (*ptr) return NULL; // String did not terminate within buffer (possibly corrupted/malicious packet) buffer->buffer_pointer = ptr + 1; @@ -62,7 +63,7 @@ void serializer_put_uint64(serialized_buffer_t *buffer, uint64_t value) void serializer_put_string(serialized_buffer_t *buffer, char *value) { - size_t len = strlen(value) + 1; + const size_t len = strlen(value) + 1; if (buffer->buffer_pointer + len > buffer->buffer_end) return; memcpy(buffer->buffer_pointer, value, len); buffer->buffer_pointer += len; |