タグ

ブックマーク / mattn.kaoriya.net (12)

  • Big Sky :: sudo の特権昇格バグはなぜ起こったのか

    « Microsoft Word を Markdown に変換するコマンド「docx2md」を作った。 | Main | VimConf 2019 を終えて » Linuxsudo に root 権限を奪取できるバグが見つかった。 Linuxの「sudo」コマンドにroot権限奪取の脆弱性。ユーザーID処理のバグで制限無効化 - Engadget 日版 この脆弱性は、sudoコマンドのユーザーIDに-1もしくは4294967295を指定すると、誤って0(ゼロ)と認識して処理してしまうというもの。0(ゼロ)はrootのユーザーIDであるため、攻撃者は完全なrootとしてコマンドを実行できることになります。 https://japanese.engadget.com/2019/10/14/linux-sudo-root-id/ 既に Ubuntu 等にはパッチが配布され始めているらしい

    Big Sky :: sudo の特権昇格バグはなぜ起こったのか
    nilab
    nilab 2019/10/17
    「教訓 境界値チェックを行わないと、死ぬ」「sudo_strtoid_v1 が今回バグを生んだ関数」
  • Big Sky :: ファイル名の一括置換なら massren がめちゃめちゃ便利

    大量にあるファイルのファイル名を一括で変更する場合、どうしても GUI での操作であったりマッチパターンを書くのが面倒だったりしましたが、massren を使えば誰でも簡単にファイル名の一括置換が出来る様になります。 laurent22/massren - GitHub massren - Easily rename multiple files using your text editor https://github.com/laurent22/massren お気に入りのテキストエディタを使って、好きな様にファイル名を変更出来ます。サポートしているOSは Windows, Linux, OSX です。中身は golang で書かれています。 それぞれバイナリが用意されているので自分でビルドする必要はありません。LinuxOSX の人はリンク先にある手順を、Windows の人は

    Big Sky :: ファイル名の一括置換なら massren がめちゃめちゃ便利
    nilab
    nilab 2014/04/18
    Big Sky :: ファイル名の一括置換なら massren がめちゃめちゃ便利
  • Big Sky :: さよならIE6たん

    君と会わなくなって随分と年月が過ぎたね。 最近になって僕は何度か君の事を思い出してる。 君と初めて会った時、僕はまだNetscape Communicatorっていう恋人と付き合ってたんだよね。 彼女はブラウザとしてだけじゃなくって、メーラなんかもこなせる、ちょっとポッチャリした娘だったんだよ。 まぁ僕の友達から言わせると「ポッチャリどころじゃねぇだろ」って言ってたけどね。 でも君と出会って僕の人生は大きく変わった。 君はとてもお茶目で、よく僕に「不正な処理を行いました」なんて可愛いメッセージを見せてくれたよね。 今でも鮮明に覚えてるよ。 何かあるとすぐクラッシュしたよね。CSSで「:first-letter」とか指定すると、簡単に落ちちゃったよね。 一緒に青い画面、よく見に行ったっけ。 互換性の無い独特な仕様も、君らしくて愛くるしいとも思えた。 buttonタグのvalue属性の値とか、

    Big Sky :: さよならIE6たん
    nilab
    nilab 2014/04/18
    Big Sky :: さよならIE6たん
  • Big Sky :: Learn Vim Progressively

    この文章は、 http://yannesposito.com/Scratch/en/blog/Learn-Vim-Progressively/で掲載されている「Learn Vim Progressively」の翻訳文です。 文内の全てはの筆者による物であり、訳文の内容については私による物となります。意訳が若干入っています。間違い等あればご連絡下さい。 tl;dr: 可能な限り速くvim(人類史上、最良と知られているテキストエディタ)を習得したい。その方法を提案する。生き残るには最小を学ぶ事から始め、その後徐々にトリックを混ぜて行く。 Vim 60億ドルのテキストエディタ 優れいて、強く、そして速い vimを学ぶ事、それはあなたあなたが学ぶ最後のテキストエディタになるでしょう。私が知る限りより優れたテキストエディタはない。学ぶのは難しいが、使うと素晴らしい。 4つのステップで学ぶ事をお勧めす

    Big Sky :: Learn Vim Progressively
    nilab
    nilab 2014/04/18
    Big Sky :: Learn Vim Progressively
  • Big Sky :: モテる男のVim script短期集中講座

    ここで関数リファレンスのみ格納先の変数の先頭が大文字になっていますが、これはVim script特有の制限になります。 数値は一般的な言語と同じ様に四則演算できます。文字列については.を用いて連結します。 また文字列は添え字によるアクセスが可能で、pythonの様に echo "hello"[1:3] という記述が出来ます。その他文字列操作関数については:help evalに詳しく記述されています。 また型同士の比較についてはthincaさんの記事が役立ちます。 Vimスクリプト基礎文法最速マスター - 永遠に未完成 Vimスクリプト基礎文法最速マスター vim 流行ってるみたいなので遅ればせながら便乗。需要?何それおいしいの? Perl基礎文法最速マスター - サンプルコードによるPerl入門 Route 477... http://d.hatena.ne.jp/thinca/20100

    Big Sky :: モテる男のVim script短期集中講座
    nilab
    nilab 2014/04/18
    Big Sky :: モテる男のVim Script短期集中講座
  • Big Sky :: Windowsへの移植も視野にいれたプログラムを書くなら読んでおいて欲しい事

    絶対パスの先頭に/が来る事を期待してはいけない しかしながら絶対パスの先頭にドライブレターが来る事を期待してはいけない UNCパスのホスト名やシェア名はディレクトリではないのでファイルシステムAPIは使えない事を意識しておく unixに比べパス内に空白文字が入る可能性が高い事を意識しておく ホームディレクトリを意味するパスの先頭チルダは自前で展開する必要があり、またパスの途中にチルダが混じる事は日常的にある ソケットディスクリプタに対してもread/writeで送受信できる事を期待してはいけない パイプでない標準入力のselectはやっても意味がない ディレクトリ内にあるファイルを開き、ハンドルを保持したままディレクトリを消せるのは当たり前だと思わない パスのセパレータが/¥である事を期待してANSI APIを使ってはいけない Cランタイム(POSIX互換API)とWindows API

    Big Sky :: Windowsへの移植も視野にいれたプログラムを書くなら読んでおいて欲しい事
    nilab
    nilab 2014/04/18
    Big Sky :: Windowsへの移植も視野にいれたプログラムを書くなら読んでおいて欲しい事
  • Big Sky :: bit.ly がソーシャルに生まれ変わって、皆とっても恥かしい事になる

    URL短縮サービス bit.ly がソーシャルに生まれ変わった様です。 bitly blog - Welcome to the new bitly! Welcome to the new bitly! bitly has long been the home to important content you share across the web... http://blog.bitly.com/post/23998132587/welcome-to-the-new-bitly Easily save, share and discover links ? they’re called bitmarks, like bookmarks. Instantly search your saved bitmarks. Curate groups of bitmarks into bundles

    Big Sky :: bit.ly がソーシャルに生まれ変わって、皆とっても恥かしい事になる
    nilab
    nilab 2012/06/13
    Big Sky :: bit.ly がソーシャルに生まれ変わって、皆とっても恥かしい事になる : 「既存の物は全てpublic扱いなので自分で消すべきです」
  • Big Sky :: C++でcoutやcerrの挙動を変える。

    先日twitterで「C++でデバッグする時、よくやるよね」って言ったら結構知らない人がいたのでここでも紹介してみる。 既存のコードでcout/cerrを使ったデバッグ文がわんさかあって、これログファイルとして出力したいな...って場合ありますよね。 そんな場合 #include <iostream> #include <fstream> using namespace std; int main() { // こんなの ofstream ofs("debug.log"); cout.rdbuf(ofs.rdbuf()); // いれとく cout << "debug string" << endl; } こうしておくと、その後のcoutへの出力が全てdebug.logというファイルへ出力される。 なおrdbufを元に戻すには #include <iostream> #include <f

    Big Sky :: C++でcoutやcerrの挙動を変える。
    nilab
    nilab 2011/11/30
    Big Sky :: C++でcoutやcerrの挙動を変える。 : ofstream ofs("debug.log"); cout.rdbuf(ofs.rdbuf()); freopen("file.txt", "w", stdout);
  • Big Sky :: libuvを使ってみた。

    node.jsのスライドを見てて、プラットフォームの違いを吸収するnode.jsの核でもある非同期通信ライブラリuvを今日知ったので試してみた。 joyent/libuv - GitHub platform layer for node.js https://github.com/joyent/libuv libev/libeventをwindowsでもちゃんと使いたいという所から出てきたライブラリ。 #include <iostream> #include <uv/uv.h> int main() { int r; uv_tcp_t tcp; struct sockaddr_in server_addr; server_addr = uv_ip4_addr("127.0.0.1", 80); r = uv_tcp_init(uv_default_loop(), &tcp); uv_con

    Big Sky :: libuvを使ってみた。
    nilab
    nilab 2011/11/30
    Big Sky :: libuvを使ってみた。 : 「プラットフォームの違いを吸収するnode.jsの核でもある非同期通信ライブラリuv」「libev/libeventをwindowsでもちゃんと使いたいという所から出てきたライブラリ」
  • Big Sky :: ヘッダファイルだけでC++から使えるJSONパーサ「picojson」が凄い!

    kazuhoさんがやってくれました。 ずいぶん前からjsonをC++でパース(SAXじゃなくてDOM)するのに小さいライブラリないかなーと思ってました。個人的にはjson-cというのを使ってたのですが、幾らか気に入らない所があったりビルドが少し手間だったりしていました。STLしか使わなくてvectorとかmapで表現されるツリー構造な物が欲しいなぁって思ってたんです。 とあるIRCで昨日、kazuhoさんと「ほしいですよねー」という話から始まって、githubにあるjsonxxとかも物色しながら「いいのないねー」とか言ってたらkazuhoさんが「もすこし綺麗に書けそう」って言い出して朝から格的に書き始めてついさっき出来上がりました。速いw 名前はpicojson とても小さく、実装コードだと300数十ステップ程です。しかもヘッダファイルだけなので管理が楽です。 試しにwassrのpubl

    Big Sky :: ヘッダファイルだけでC++から使えるJSONパーサ「picojson」が凄い!
    nilab
    nilab 2011/10/19
    Big Sky :: ヘッダファイルだけでC++から使えるJSONパーサ「picojson」が凄い!
  • Big Sky :: Goでblosxomライクなブログサーバ書いた。

    新しい言語を始めて慣れてくると、必ず作りたくなるのがblosxomですね。(ですよね?) て事でGoblosxomライクなのを作った。cgiも出来なくないけど、GoはWebに強かったりもするので、web.goを使ってサーバとして書いた。 名前は「blogo」(ブロゴー!えっ)。blosxomライクにテキストファイルを読み込んで、タイトルと文をこしらえます。 今回はHTMLのテンプレートエンジンとしてmustache(マツタケじゃないよ)を選びました。 結構ハマってしまったけど、一通り動いた。設定ファイル(JSON)でフォルダ位置やタイトル、サブタイトル、リンク一覧なんかを変更出来ます。見た目はこんな感じ。 短いのでソース全部のっける。 package main import "bytes" import "html" import "io" import "io/ioutil" imp

    Big Sky :: Goでblosxomライクなブログサーバ書いた。
    nilab
    nilab 2011/03/03
    Big Sky :: Goでblosxomライクなブログサーバ書いた。「blosxomライクにテキストファイルを読み込んで、タイトルと本文をこしらえます」「HTMLのテンプレートエンジンとしてmustache(マツタケじゃないよ)」「設定ファイル(JSON)」
  • Big Sky :: C++で軽量Webサーバ書いた。

    書いたといっても結構前からあったのですが、いらん所を削ぎ落として軽量Webサーバとして仕立て上げました。 軽量とは言えど、CGIを使って結構色々動きます。 例えば、ソースアーカイブを解凍したらCGIがあって、apacheから見える場所にコピーして...とか面倒くさかったりしますよね。 おれは今すぐWebサーバを起動したいんだ!そして今いるディレクトリのファイルをWebサーバからサーブしたいんだー! って事ないですか?blogソフトウェアをダウンロードして今すぐ試したいけど、apacheインストールされてなかった...とか悲しすぎます。 今回紹介する"tinytinyhttpd"(tthttpd)はそんな、小さい様で大きな問題を解決出来るかもしれないソフトウェアです。 mattn's tinytinyhttpd at master - GitHub tiny tiny httpd http:

    Big Sky :: C++で軽量Webサーバ書いた。
    nilab
    nilab 2009/08/02
    Big Sky :: C で軽量Webサーバ書いた。 : "tinytinyhttpd"(tthttpd)
  • 1