>> >> What happens if a couple of users decide to upload 100MB files at the same time?
>> 100000 loop iterations each...

But you'll run out of memory.

>> What would be the advantage of a vector over a linked list? Bearing in mind I've already coded most of the linked-list, so ease of implementation is not a big concern. <<

Ideally, you halve the memory required and remove the need for a memory copy. Realistically, that depends on the implementation of realloc(). A poor implementation of realloc() or a fragmented address space may result in several memory copies.

Why do you need the entire HTTP request in memory? Ideally, you would only put the HTTP headers in memory and the following POST or PUT data would be written directly to the CGI program.