What is malloc's standard-defined behavior with respect to the amount of memory it allocates?
I recently told a friend that
malloc(n) allocates and returns a pointer to a block of at least N bytes of memory, as opposed to exactly N; that it is allowed to allocate 'extra' memory to meet e.g. alignment requirements.
He asked what the C standard had to say about this behaviour. I wasn't sure, so I looked it up, and...I can't find any explicit statement on the subject.
Did I miss something in the standard, or was I wrong to begin with? What is
malloc's standard-defined behaviour with respect to the block of memory it returns?
(this discussion was in the context of a single-byte buffer-overrun bug that only manifested when N was a multiple of 8; it certainly looked like malloc was rounding up to the word size, although obviously trying to use any such slop is still a bug)