タグ

glibcに関するa2ikmのブックマーク (4)

  • 元号の処理がどこで行われているか探してみる

    この記事はLinux Advent Calendar 2016の4日目の記事です。 わりとマイナーな機能ですが、linuxでja_JP.utf8のlocaleで以下のようにコマンドを叩くと、元号をちゃんと処理して表示してくれたりします。 $ LC_TIME=C date +'%EY' 2016 $ LC_TIME=ja_JP.utf8 date +'%EY' 平成28年 ちょっと前に国の象徴のおじいさん(82)が「退位したい」みたいなこと言ってましたし、いいかげん年なのでしんどかろうと思います。法律の要件とかはわかりませんが退位が行われれば元号が変わるでしょうから、庶民の我々も少なくともこのコードを修正しないといけないわけです。 これはどこからきているのかを探りましょう。 $ ldd `which date` linux-vdso.so.1 (0x00007ffd14593000) lib

  • マルチスレッドでgetaddrinfo(3)するとたまに Temporary failure in name resolution (EAI_AGAIN) で失敗する件 - (ひ)メモ

    マルチスレッドでgetaddrinfo(3)するとたまにTemporary failure in name resolution (EAI_AGAIN) で失敗します。 自分は↓な環境で確認しました。 CentOS 6.5 glibc-2.12-1.149.el6_6.5 こういうコードで再現します。(ruby 2.1.4で確認) なお、便宜的にrubyで再現コードを書いていますが、該当環境であれば言語問わずマルチスレッド+getaddrinfo(3)の組み合わせで発現する問題です。 対処法は、 glibc glibc-common glibc-devel glibc-headers nscd のrpmをCentOS 6 Updatesにあるバージョン 2.12-1.149.el6_6.9 のに上げればOKです。 ちなみに自分は、Chef実行時にたまにberksのAPIサーバーの名前が引け

    マルチスレッドでgetaddrinfo(3)するとたまに Temporary failure in name resolution (EAI_AGAIN) で失敗する件 - (ひ)メモ
  • GHOST 脆弱性は如何様に使うのか | Webシステム開発/教育ソリューションのタイムインターメディア

    先日 GHOST と呼ばれる glibc の脆弱性が発表された。なんでも、「リモートから任意のコードを実行できる可能性がある」らしいではないか。しかも様々なプログラムで利用されているライブラリ部分の問題とあって、影響範囲がとても広い。なかなか厄介なことである。 はて、しかし一体全体どうやってリモートから任意のコードを実行しようというのだろう? 話を聞くに、たかが数バイトの情報を範囲外のメモリに書き込める可能性があるだけだという。実際それだけのことでサーバーの乗っ取りなどできるものなのだろうか。そんなわけで、その疑問に答えるべく、記事では以下の URL で解説されている実際の攻撃方法を若干端折って紹介してみようと思う。 http://www.openwall.com/lists/oss-security/2015/01/27/9 なお、記事はこの脆弱性そのものに対する緊急度などについて言

    GHOST 脆弱性は如何様に使うのか | Webシステム開発/教育ソリューションのタイムインターメディア
    a2ikm
    a2ikm 2015/01/30
    “乗っ取られただけでおしまいというわけにもいかない。次の目標への踏み台とされ、穴は次から次へと広がっていくものなのだ。”
  • jemallocとかLD_PRELOADについて調べてみた - As a Futurist...

    何周遅れか分かりませんが調べてみました。僕の理解は浅いので間違っている可能性大ですが自分用にメモしておきます。 malloc とは? C 言語ではmallocという関数を使って、使いたいメモリを実行中に割り当てることができます。例えば Wikipedia によればこんな感じ(適当に main 足してます)。 #include <stdlib.h> int main() { /* 10個のintの配列のためのメモリを確保 */ int *ptr = malloc(sizeof (int) * 10); if (ptr == NULL) exit(EXIT_FAILURE); /* メモリを確保できなかったので、exit */ /* 確保成功 */ } malloc – Wikipedia これを素朴に gcc でコンパイルすると、glibc(libc.so.6)が動的にリンクされます(ここら

    jemallocとかLD_PRELOADについて調べてみた - As a Futurist...
  • 1