Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Wed, 25 Jan 2017 11:46:44 -0800
From: Andrei Vagin <>
To:, Andrei Vagin <>
Subject: Re: Re: Need to zero pads in msghdr

On Wed, Jan 25, 2017 at 11:40 AM, Szabolcs Nagy <> wrote:
> * Andrei Vagin <> [2017-01-25 10:56:22 -0800]:
>> On Wed, Jan 25, 2017 at 8:42 AM, Andrei Vagin <> wrote:
>> > In this patch
>> >
>> > you suppose that the kernel ignores the upper 32 bits of msg_iovlen,
>> > but it doesn't, so pads in msghdr structures have to be zeroed before
>> > calling sendmsg and recvmsg syscalls.
>> Actually the problem is a bit different. In CRIU we use the msghdr
>> structure from musl-libc, but in some cases we have to call raw system
>> calls. We don't expect to have pads in structures and so we don't zero
>> them.
> why do you need a raw syscall?

We inject our code into processes which are going to be dumped:

And on restore we have to unmap old libc to restore process mappings.

> (i think if you do raw syscalls you should use
> your own linux syscall wrappers including typedefs
> and macro defines, not libc ones, because the libc
> can and does do all sorts of remapping of things to
> workaround various mismatches between the posix
> library api it provides and the linux syscall abi)

We know about this risk, but before this day we executed out test for
glibc and it worked for everyone. Now we need think how to resolve the

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.