c
struct gpadl_header_result {
    int ret;
    bool buffer_freed;
};

struct gpadl_header_result result = create_gpadl_header(type, kbuffer, size, send_offset, &msginfo);
if (result.ret || result.buffer_freed)
    return result.ret ? result.ret : -EFAULT;
