From 5715f07244d23d5a823692ee6681ef5e54b6f687 Mon Sep 17 00:00:00 2001
From: Matthias Ringwald <matthias@ringwald.ch>
Date: Sat, 13 Oct 2018 13:29:46 +0200
Subject: [PATCH] goep_client: send empty name without trailing \0

---
 src/classic/goep_client.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/src/classic/goep_client.c b/src/classic/goep_client.c
index 5dfa07316..ad6e776fa 100644
--- a/src/classic/goep_client.c
+++ b/src/classic/goep_client.c
@@ -521,15 +521,19 @@ void goep_client_add_header_challenge_response(uint16_t goep_cid, uint16_t lengt
 void goep_client_add_header_name(uint16_t goep_cid, const char * name){
     UNUSED(goep_cid);
     goep_client_t * context = goep_client;
-    int len_incl_zero = strlen(name) + 1;
+    int len = strlen(name); 
+    if (len) {
+        // empty string does not have trailing \0
+        len++;
+    }
     uint8_t * buffer = goep_client_get_outgoing_buffer(context);
     uint16_t pos = big_endian_read_16(buffer, 1);
     buffer[pos++] = OBEX_HEADER_NAME;
-    big_endian_store_16(buffer, pos, 1 + 2 + len_incl_zero*2);
+    big_endian_store_16(buffer, pos, 1 + 2 + len*2);
     pos += 2;
     int i;
     // @note name[len] == 0 
-    for (i = 0 ; i < len_incl_zero ; i++){
+    for (i = 0 ; i < len ; i++){
         buffer[pos++] = 0;
         buffer[pos++] = *name++;
     }