タグ

cとperlに関するTAKESAKOのブックマーク (6)

  • 情報処理推進機構:情報セキュリティ:調査・研究報告書:情報セキュリティ技術動向調査(2008 年下期) 5 テンポラリファイルの扱い

    2008年下期には、Perl の File::Path モジュールの rmtree 関数に関する CVE が 3件発表された。 (CVE-2008-2827, CVE-2008-5302, CVE-2008-5303)また、symlink attack に関する CVE は 100件以上出ている。 テンポラリファイルの扱いに関する問題は古くからあるが、いまだに多くの問題が発生する。そこで稿ではテンポラリファイルの扱いかたについて解説する。また、安全な削除に利用できる新しいシステムコールが提案されているので、それについても触れる。 テンポラリファイルはプログラムが一時的に利用するファイルである。 Unix においては /tmp や /var/tmp というディレクトリが提供されており、すべてのユーザがそのディレクトリ下にテンポラリファイルを生成・削除するのが慣習である。稿では、これらのデ

  • Christmas poem since 1988

  • wakaponさんの超☆Perl備忘帳: Perl setjmp longjmp

    threads.xsを見ていて、JMPENVまわりのマクロが気になったのでほげってみる。どうやらJMPENVマクロはevalやPerl_croakに関係するようだが、今回はそのあたりには触れずに、純粋にJMPENVマクロの中身と使われ方を見てみる。 1. setjmpとlongjmp Perlにおけるsetjmpとlongjmpを見る前に、まずはsetjmpとlongjmpの使い方を思い出すためにちょっとだけ手を動かす。環境はVC9。 sj.c #include <stdio.h> #include <setjmp.h> jmp_buf env; void aa (void) {    int i = 0;    while (1)    {       if (i == 100)       { longjmp (env, i); }       i++;    } } int main

  • gcc 勉強会したい - takkan_mのNo planな日常

    今日、ちょっとソースを読む時間があったのですが、ひさしぶりに知らないgccの拡張記法にであいました。 int hoge [] = { [0..10] = 3 }; どうやら、これで配列のindexが0から10までを3にした配列になるようです。いやぁ、gccが独自に拡張記法をもっているって知らずに、いきなりであったらぎょっとしますね(僕は知ってて読んでぎょっとしましたが)。 それから、フリーソフトウェア徹底活用講座をてきとうに眺めていたんですが、gccは変数名に"$"を許してくれるみたいですね。なので、こんなコードも見事にコンパイルしてくれます。 $ cat add.c #include <stdio.h> #define my int my main() { my $a = 4; my $b = 3; my $c = $a + $b; printf("%d + %d = %d\n",$a,

    gcc 勉強会したい - takkan_mのNo planな日常
    TAKESAKO
    TAKESAKO 2008/02/27
    おおお → gccは変数名に”$”を許してくれるみたい
  • Kazuho@Cybozu Labs: ウェブサービスのためのMutex - KeyedMutex

    « キャッシュシステムの Thundering Herd 問題 | メイン | DBI::Printf - A Yet Another Prepared Statement » 2007年09月27日 ウェブサービスのためのMutex - KeyedMutex 昨日、以下のように書いたのですが、両者のうち2番目のアプローチを実現する Perl モジュール KeyedMutex を作成しました。 サーバにおける Thundering Herd 問題は良く知られていると思いますが、類似の現象はキャッシュシステムでも発生することがあります。 (中略) 対策としては、以下の2種類の手段があります。 バックエンドへの同一リクエストを束ねるような仕組みを実装する エクスパイヤ以前の残存時間が一定以下となった段階で、キャッシュエントリのアップデートを開始する これらの手法には、それぞれメリットとデメリッ

    TAKESAKO
    TAKESAKO 2007/09/27
    【KeyedMutex は、クライアントが指定した鍵毎に排他処理を行うサーバ・クライアント型のシステムです。キャッシュへのデータ保存と連動させることで、データベースへの余分な問い合わせを抑制】
  • Esoteric source code

    Writing obfuscated code is fun. Golfed binaries I created other page . Polyglots Polyglot quine Polyglot Quine in C and Ruby and Python and Perl and Brainfuck . In other words, this program is runnable with 5 language implementations and it produces its source code without file I/O. Source code . You can use this source code like following: > gcc -xc <(./BFI <(python <(ruby <(perl poly_quine5.txt)

    TAKESAKO
    TAKESAKO 2007/09/14
    変態プログラミングの極地(いい意味で)
  • 1