I’m using libevent to do simple POST http server, but i find strange issue – evbuffer_copyout write to *data sended data with overhead (changed every time).
As u see in code, i was do fix by cut unnecessary symbols, but it not looks like correct solution. Here that i receive:

bellow is code of callback:
size_t len = evbuffer_get_length(evhttp_request_get_input_buffer(r));
struct evbuffer *in_evb = evhttp_request_get_input_buffer(r);
size_t lenBuffer = evbuffer_get_length(in_evb);
char *data = malloc(len);
evbuffer_remove(in_evb, data, len);
NSString *final = [NSString stringWithCString:data encoding:NSASCIIStringEncoding];
NSString *finalFinal = [final substringWithRange:NSMakeRange(0, len)];
NSLog(@"==>lenBuffer:%zu len:%zu data:%@",lenBuffer,len,finalFinal);
evhttp_add_header(evhttp_request_get_output_headers(r),
"Content-Type", "text/html");
evhttp_send_reply(r, 200, "OK", in_evb);
free(data);
When you allocate memory through malloc, it filled with some garbage.
You fill this memory with useful data, but probably it doesn’t contain string terminator character ‘\0’
So, debugger shows you data which were obtained from buffer following with some garbage.