wrong pid in siginfo_t

Ulrich Drepper (drepper@redhat.com)
Fri, 04 Jul 2003 14:05:16 -0700


This is a MIME-formatted message. If you see this text it means that your
E-mail software does not support MIME-formatted messages.

--=_courier-23274-1057352784-0001-2
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

If a signal is sent via kill() or tkill() the kernel fills in the wrong
PID value in the siginfo_t structure (obviously only if the handler has
SA_SIGINFO set). POSIX specifies the the si_pid field is filled with
the process ID. The kernel currently fills in the thread ID. The
thread IDs are not useful at all at userlevel. They are not exposed
anywhere.

One might argue that sending up the ID of the thread as well is a good
thing but I don't agree. This is what sigqueue is for: one can attach
arbitrary data to the signal and get it transmitted (the sigval_t
parameter).

I've attached a patch for the current 2.5 kernel and a test case.
Whoever collects kernel tests might want to add the program.

- --
- --------------. ,-. 444 Castro Street
Ulrich Drepper \ ,-----------------' \ Mountain View, CA 94041 USA
Red Hat `--' drepper at redhat.com `---------------------------
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)

iD8DBQE/BewL2ijCOnn/RHQRAtnYAKCmG6vX3YFo9ko8kjwzvNObxrklfACfVga3
43za5G4ljJwJD1SZEqrr+eU=
=lfde
-----END PGP SIGNATURE-----

--=_courier-23274-1057352784-0001-2
Content-Type: text/plain; name=d-kernel-signal; charset=iso-8859-1
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="d-kernel-signal"

LS0tIGtlcm5lbC9zaWduYWwuYy1zYXZlCTIwMDMtMDYtMDMgMTA6MTQ6NTUuMDAwMDAwMDAw
IC0wNzAwCisrKyBrZXJuZWwvc2lnbmFsLmMJMjAwMy0wNy0wNCAxMzo0Njo1NS4wMDAwMDAw
MDAgLTA3MDAKQEAgLTIwODEsNyArMjA4MSw3IEBAIHN5c19raWxsKGludCBwaWQsIGludCBz
aWcpCiAJaW5mby5zaV9zaWdubyA9IHNpZzsKIAlpbmZvLnNpX2Vycm5vID0gMDsKIAlpbmZv
LnNpX2NvZGUgPSBTSV9VU0VSOwotCWluZm8uc2lfcGlkID0gY3VycmVudC0+cGlkOworCWlu
Zm8uc2lfcGlkID0gY3VycmVudC0+dGdpZDsKIAlpbmZvLnNpX3VpZCA9IGN1cnJlbnQtPnVp
ZDsKIAogCXJldHVybiBraWxsX3NvbWV0aGluZ19pbmZvKHNpZywgJmluZm8sIHBpZCk7CkBA
IC0yMTA0LDcgKzIxMDQsNyBAQCBzeXNfdGtpbGwoaW50IHBpZCwgaW50IHNpZykKIAlpbmZv
LnNpX3NpZ25vID0gc2lnOwogCWluZm8uc2lfZXJybm8gPSAwOwogCWluZm8uc2lfY29kZSA9
IFNJX1RLSUxMOwotCWluZm8uc2lfcGlkID0gY3VycmVudC0+cGlkOworCWluZm8uc2lfcGlk
ID0gY3VycmVudC0+dGdpZDsKIAlpbmZvLnNpX3VpZCA9IGN1cnJlbnQtPnVpZDsKIAogCXJl
YWRfbG9jaygmdGFza2xpc3RfbG9jayk7Cg==
--=_courier-23274-1057352784-0001-2
Content-Type: text/plain; name="tst-sipid.c"; charset=iso-8859-1
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="tst-sipid.c"

I2luY2x1ZGUgPHNlbWFwaG9yZS5oPgojaW5jbHVkZSA8c2lnbmFsLmg+CiNpbmNsdWRlIDx1
bmlzdGQuaD4KCnN0YXRpYyBpbnQgZmFpbGVkOwpzdGF0aWMgcGlkX3QgcGlkOwpzdGF0aWMg
dWlkX3QgdWlkOwpzdGF0aWMgc2VtX3Qgc2VtOwpzdGF0aWMgaW50IGlzX2tpbGw7CgojZGVm
aW5lIFRIRVNJRyBTSUdSVE1JTgoKc3RhdGljIHZvaWQKc2ggKGludCBzaWcsIHNpZ2luZm9f
dCAqc2ksIHZvaWQgKmN0eCkKewogIGlmIChzaWcgIT0gc2ktPnNpX3NpZ25vKQogICAgewog
ICAgICBwcmludGYgKCJzaWcgIT0gc2ktPnNpX3NpZ25vOiAlZCB2cyAlZFxuIiwgc2lnLCAo
aW50KSBzaS0+c2lfc2lnbm8pOwogICAgICBmYWlsZWQgPSAxOwogICAgfQogIGlmIChzaS0+
c2lfY29kZSAhPSBpc19raWxsID8gU0lfVVNFUiA6IFNJX1FVRVVFKQogICAgewogICAgICBw
cmludGYgKCJzaS0+c2lfY29kZSB3cm9uZzogJWRcbiIsIHNpLT5zaV9jb2RlKTsKICAgICAg
ZmFpbGVkID0gMTsKICAgIH0KICBpZiAoc2ktPnNpX3BpZCAhPSBwaWQpCiAgICB7CiAgICAg
IHByaW50ZiAoInNpLT5zaV9waWQgd3Jvbmc6ICVkIHZzICVkXG4iLCAoaW50KSBzaS0+c2lf
cGlkLCAoaW50KSBwaWQpOwogICAgICBmYWlsZWQgPSAxOwogICAgfQogIGlmIChzaS0+c2lf
dWlkICE9IHVpZCkKICAgIHsKICAgICAgcHJpbnRmICgic2ktPnNpX3VpZCB3cm9uZzogJWQg
dnMgJWRcbiIsIChpbnQpIHNpLT5zaV91aWQsIChpbnQpIHVpZCk7CiAgICAgIGZhaWxlZCA9
IDE7CiAgICB9CiAgc2VtX3Bvc3QgKCZzZW0pOwp9CgoKc3RhdGljIHZvaWQgKgp0ZiAodm9p
ZCAqYXJnKQp7CiAgcHV0cyAoInRyeWluZyBraWxsIik7CiAgaXNfa2lsbCA9IDE7CiAga2ls
bCAocGlkLCBUSEVTSUcpOwogIHNlbV93YWl0ICgmc2VtKTsKCiAgcHV0cyAoInRyeWluZyBz
aWdxdWV1ZSIpOwogIHNpZ3ZhbF90IHN2OwogIHN2LnNpdmFsX2ludCA9IDQyOwogIGlzX2tp
bGwgPSAwOwogIHNpZ3F1ZXVlIChwaWQsIFRIRVNJRywgc3YpOwogIHNlbV93YWl0ICgmc2Vt
KTsKfQoKCmludAptYWluICh2b2lkKQp7CiAgcGlkID0gZ2V0cGlkICgpOwogIHVpZCA9IGdl
dHVpZCAoKTsKCiAgc3RydWN0IHNpZ2FjdGlvbiBzYTsKICBzYS5zYV9zaWdhY3Rpb24gPSBz
aDsKICBzYS5zYV9mbGFncyA9IFNBX1NJR0lORk87CiAgc2lnZW1wdHlzZXQgKCZzYS5zYV9t
YXNrKTsKICBzaWdhY3Rpb24gKFRIRVNJRywgJnNhLCBOVUxMKTsKCiAgc2VtX2luaXQgKCZz
ZW0sIDAsIDApOwoKICBwdGhyZWFkX3QgdGg7CiAgcHV0cyAoInN0YXJ0aW5nIDFzdCB0aHJl
YWQiKTsKICBwdGhyZWFkX2NyZWF0ZSAoJnRoLCBOVUxMLCB0ZiwgTlVMTCk7CiAgcHRocmVh
ZF9qb2luICh0aCwgTlVMTCk7CiAgcHV0cyAoInN0YXJ0aW5nIDJuZCB0aHJlYWQiKTsKICBw
dGhyZWFkX2NyZWF0ZSAoJnRoLCBOVUxMLCB0ZiwgTlVMTCk7CiAgcHRocmVhZF9qb2luICh0
aCwgTlVMTCk7CgogIHJldHVybiBmYWlsZWQ7Cn0K
--=_courier-23274-1057352784-0001-2--