Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date: Thu, 26 Jan 2017 10:01:26 -0500
From: Rich Felker <>
Cc: Andrei Vagin <>
Subject: Re: Re: Need to zero pads in msghdr

On Thu, Jan 26, 2017 at 12:00:46AM +0100, Szabolcs Nagy wrote:
> * Andrei Vagin <> [2017-01-25 11:46:44 -0800]:
> > On Wed, Jan 25, 2017 at 11:40 AM, Szabolcs Nagy <> wrote:
> > > 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.
> if you static link to musl for the parasite then
> i don't see why the syscalls have to be raw..
> what you may worry about is process global
> state that the libc takes control of
> (libc internal signal handler, brk pointer,
> doing things to fd 0/1/2, etc), but that you
> cannot prevent with raw syscalls.

My impression is that the parasite code does not link any libc, in
which case it should be fine.

On further consideration, though, it probably makes more sense to use
kernel headers for the syscall-argument structure defs in the parasite
code if it's making direct syscalls. Using the libc headers to get
these structs will break if we ever have a musl2 abi (longterm idea,
no idea if it will ever happen) that abstracts away all the linux
kernel types behind clean, arch-independent, extensible definitions
with translation in the libc wrapper functions.


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.