僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。
当然といえば当然なのだろうけど。
脆弱性対応確認。
$ ldd /bin/true linux-vdso.so.1 => (0x00007fff74db7000) libc.so.6 => \ /lib/x86_64-linux-gnu/libc.so.6 (0x00007f5fdcd56000) /lib64/ld-linux-x86-64.so.2 (0x00007f5fdd0ee000) $ ls -l /lib/x86_64-linux-gnu/libc.so.6 lrwxrwxrwx 1 root root 12 1月 27 09:25 \ /lib/x86_64-linux-gnu/libc.so.6 -> libc-2.13.so $ ls -l /lib/x86_64-linux-gnu/libc-2.13.so -rwxr-xr-x 1 root root 1603600 1月 27 09:25 \ /lib/x86_64-linux-gnu/libc-2.13.so $ file /lib/x86_64-linux-gnu/libc-2.13.so /lib/x86_64-linux-gnu/libc-2.13.so: \ ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), \ dynamically linked (uses shared libs), \ BuildID[sha1]=0xf6ad460540e2095396694c47abfe546be9fe4956, \ for GNU/Linux 2.6.26, stripped $ /lib/x86_64-linux-gnu/libc-2.13.so GNU C Library (Debian EGLIBC 2.13-38+deb7u7) stable \ release version 2.13, by Roland McGrath et al. Copyright (C) 2011 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Compiled by GNU CC version 4.4.7. Compiled on a Linux 3.2.65 system on 2015-01-26. Available extensions: crypt add-on version 2.1 by Michael Glad and others GNU Libidn by Simon Josefsson Native POSIX Threads Library by Ulrich Drepper et al BIND-8.2.3-T5B libc ABIs: UNIQUE IFUNC For bug reporting instructions, please see: <http://www.debian.org/Bugs/>.
FreeBSD 11-CURRENT r277866。
[$USER@$HOST /usr/src/usr.bin/true]$ wc -l true.c 46 true.c [$USER@$HOST /usr/src/usr.bin/false]$ wc -l false.c 46 false.c
30行ほどは著作権表示、10行ほどが内部への著作権情報 埋め込み、肝心の処理は5行ほど。
int main(void) { return 0; /* false(1)なら1 */ }
GNU Coreutils-8.23の場合、
$ wc -l true.c false.c 80 true.c 2 false.c 82 合計
true.c は15行ほどのライセンス表示に
Usageに18行ほど、残りが実際の処理部分。
実のところ、どこがどうなってるのか、
あまりよくわからなかったり。
false.c は
$ cat false.c #define EXIT_STATUS EXIT_FAILURE #include "true.c"
例によって難バカ。
gcc に文句を言われる関数を一つ(2ヶ所)ようやく
削除。
ついでに入出力するファイルの長さをUnixに合わせる(255バイト)。
gets(3)からfgets(3)への書き換えについて
参考になったサイト。
もっともgcc -Wall やられると、まだまだ エラーでまくりだったりする。
main()の頭にint をつけ、それから
get_opt1()にreturn 0 を加えた。
最初と最後のエラーだけは出なくなった。
リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。