def alloc_buffer(self, length):
        """
        Allocate a buffer (a range of uninitialized memory).

        Arguments:
            length(int): The length of the buffer to allocate.

        Returns:
            ~pwnypack.types.Buffer: The object used to address this buffer.
        """

        buf = Buffer(sum(len(v) for v in six.iterkeys(self.data)) + sum(v.length for v in self.buffers), length)
        self.buffers.append(buf)
        return buf