From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.3 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 22070 invoked from network); 19 Jan 2021 22:00:40 -0000 Received: from mother.openwall.net (195.42.179.200) by inbox.vuxu.org with ESMTPUTF8; 19 Jan 2021 22:00:40 -0000 Received: (qmail 16306 invoked by uid 550); 19 Jan 2021 22:00:38 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-ID: Reply-To: musl@lists.openwall.com Received: (qmail 16282 invoked from network); 19 Jan 2021 22:00:37 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=notion-se.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=5AKmyJiUEadKQP756Wtrnc+37jjHOxY98UDA0OKJPGo=; b=Gu9oOnJFYC5oIxvq6vGVdeTDfqdYx6NhgK9iPC5jFa+9G1UxtjzJ7pQpEnN35vtBK0 NWr995VQBq9XZomR1TgpJosFkMyURoI/qxQk6YtrmV7OoGwup88wyF0jRJoZJdhBOGs6 UKE79rJsdIv8XUE4HAaxm0+HhlCZkcb2iAldJaec3zjWeDS+7OAj5zI606yldacB+Y+n 46BSN75ak4NwpxnWEUmRXkI1p4bc+XfqJV3hBOzIe5c8yxI4i2D/fiYLuRdGKJuQGT9T Cp6M+CN9DpI6l8pwIoeEkfKDFwXq4MnhuqN8Vl8rlhpYOp9On/C16FJ234F+SQCmhGXn ZSkw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=5AKmyJiUEadKQP756Wtrnc+37jjHOxY98UDA0OKJPGo=; b=UaKOQJ6JXI0/f78wuKl/jlBEGufxgOJG4DaH83two4G4YPLKkt7SHR/OaaAoupEbGx k7jj1Ga8mdLNKeluTjpEt2xC0Bs1Pfa72rmzLkMK3tACSDIFa3pjZe12j7OYpDCnEb1+ 5Q2T3zujfJ0JqycFPbdf3yBBj/mw9ddGONIhoZvVu+43LFSIVw5PrVpuaU53VQXChYR2 14T5vF2yzD/HQP+c5OLPG1RzQI/dCFmk0FNX64sDkDO5ZlJ8cgz2tM7K6c/qhmNDnzpm KsNWn1tQvUjuRVVA0EqBCQ/tGERv/K76h/EH8wIKzyTxvEujxOaG30FbKv0jkNogWdha QpYA== X-Gm-Message-State: AOAM53077Ze98kXRQgSOLRUxQ8ywrH/4OHxPsgazhzcfAk/GvQ4s0y9t 5jzoo62Je8lmd4UmtUKcxEPFbE4eSHkv+5oW/OorQg== X-Google-Smtp-Source: ABdhPJyBqXHF2fwAsioryDUsoZBE5MomyWOselBkwLW9zPrUCv89xVdQDL+O06cPur9gIhF4E8D9tCglw4MLXiRoZvg= X-Received: by 2002:a63:e4a:: with SMTP id 10mr6335078pgo.45.1611093625299; Tue, 19 Jan 2021 14:00:25 -0800 (PST) MIME-Version: 1.0 References: <20210119193337.GB2006@voyager> <20210119211653.GK23432@brightrain.aerifal.cx> In-Reply-To: <20210119211653.GK23432@brightrain.aerifal.cx> From: Rasmus Andersson Date: Tue, 19 Jan 2021 14:00:14 -0800 Message-ID: To: Rich Felker Cc: musl@lists.openwall.com Content-Type: text/plain; charset="UTF-8" Subject: Re: [musl] waitpid (wait4) on Linux 5 returns invalid values That was compiled using https://more.musl.cc/10/x86_64-linux-musl/x86_64-linux-musl-native.tgz on Alpine Linux in a docker container (alpine:3.12) Full repro: $ wget https://more.musl.cc/10/x86_64-linux-musl/x86_64-linux-musl-native.tgz $ tar -xf x86_64-linux-musl-native.tgz $ cat << EOF > a.c #include #include #include #include int main(int argc, char **argv) { int wstat = 0; pid_t child = waitpid(-1, &wstat, WNOHANG); printf("waitpid returned %d, wstat=%d, errno=%d (%s)\n", child, wstat, errno, strerror(errno)); return 0; } EOF $ x86_64-linux-musl-native/bin/gcc -static a.c $ ./a.out waitpid returned -10, wstat=0, errno=0 (No error information) On Tue, Jan 19, 2021 at 1:16 PM Rich Felker wrote: > > On Tue, Jan 19, 2021 at 12:35:26PM -0800, Rasmus Andersson wrote: > > Relevant parts from disassembly: (objdump --disassemble --source > > --line-numbers a.out) > > > > 0000000000401f61 <__syscall_cp_c>: > > sccp(): > > 401f61: 48 89 f8 mov %rdi,%rax > > 401f64: 4d 89 c2 mov %r8,%r10 > > 401f67: 48 89 f7 mov %rsi,%rdi > > 401f6a: 4d 89 c8 mov %r9,%r8 > > 401f6d: 48 89 d6 mov %rdx,%rsi > > 401f70: 4c 8b 4c 24 08 mov 0x8(%rsp),%r9 > > 401f75: 48 89 ca mov %rcx,%rdx > > 401f78: 0f 05 syscall > > 401f7a: c3 retq > > > > 0000000000401f7b <__syscall_cp>: > > __syscall_cp(): > > 401f7b: e9 e1 ff ff ff jmpq 401f61 <__syscall_cp_c> > > > > 00000000004004fd : > > waitpid(): > > ... > > 40051a: e8 5c 1a 00 00 callq 401f7b <__syscall_cp> > > 40051f: 48 83 c4 18 add $0x18,%rsp > > 400523: c3 retq > > This disassembly shows a miscompiled (or compiled with wrong patches) > waitpid. It should be a tail call to __syscall_ret, not a retq. > > Rich