[debian-devel 00335] glibcのsleep()の実装は安全か?

Mitsutoshi NAKANO itsango @ gmail.com
2020年 2月 15日 (土) 20:58:08 JST


glibcのsleep()の実装がどうなっているのか知りたくて、
ソースを眺めていました。
 <https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/posix/sleep.c>
すると
      if (__nanosleep (&ts, &ts) < 0)
と、__nanosleep()の2つの引数に同じアドレスを与えています。
ここで不安になってきました。

__nanosleep()の2引数に同じアドレスを与えても、問題ないのでしょうか?
例えばstrcpy(s, s)と同じsを与えたら未定義の動作になりますよね。
同じような問題が__nanosleep()で起きたりしないのでしょうか?

今まで問題になったことが無いのだから、害は無いのでしょうが、
モヤモヤするのでお伺いします。

深追いしてみたのですが、
 <https://sourceware.org/git/?p=glibc.git;a=blob;f=posix/nanosleep.c>
 <https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/unix/sysv/linux/clock_nanosleep.c>
 このあたりでどう読んで良いのかわからなくなってきました。
  <https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/unix/sysdep.h>

-- 
Mitsutoshi Nakano <ItSANgo @ gmail.com> <bkbin005 @ rinku.zaq.ne.jp>
 <https://twitter.com/ItSANgo> <https://launchpad.net/~bkbin005>


debian-devel メーリングリストの案内