ときどきの雑記帖 RE* (新南口)
現在過去未来
知識のアップデート
ここ数日、ミャンマーのクーデター関連のニュースをよく目にしたり耳にしますが、 あるときミャンマーの首都として聞き覚えのない名前を言っているのに気がつきました。
(4)2005年11月7日、ミャンマー政府は、首都機能をヤンゴンからピンマナ県(ヤンゴン市の北方約300キロメートル)に移転する旨発表し、 新首都をネーピードーと命名。
15年前…気がつかなかったか忘れていたか。
自分たちが小中高で習った(それ以後も含めて)あれやこれやも 今では色々変わっていて、油断すると 「時代遅れ」になってしまうので怖いすな。
何年か前に、新書みたいな感じの「今の学校ではわたしたち(昭和生まれ)が習った ああいうことやこういうことはこう変わってますよ」 (たとえば鎌倉幕府の始まりが1192年じゃなくなったみたいなこと) ということがらを集めた本を読んだのだけどタイトルを思い出せない…
MIT Tech Review
MIT Tech Review: グーグルが指摘する、ソフトウェアの脆弱性が無くならない理由
興味深い記事ではあるんだけど有料記事。 んで、MITテクノロジーレビューの購読って月に1500円くらい(1年まとめてだとちょっと安くなる) なのね 購読のご案内 | MITテクノロジーレビュー
読む記事の数によっては値段相応のリターンも得られるのだろうけど、 何かの形で記事(へのリンク)を目にすることがあまりないからなあ。
無料会員登録でも月にいくつかは記事を読めるみたいだから、登録だけしてみようかなあ。
Buffer Overflow
「Python」にバッファオーバーフローの脆弱性 ~サポート終了の「Python 2」にも影響 - 窓の杜
「ActivePerl」などの製品で知られる加ActiveStateは2月5日(現地時間)、「Python」の脆弱性(CVE-2021-3177)について注意を喚起した。 すでにサポートの終了した「Python 2」にも影響があるという。
“CVE-2021-3177”はバッファオーバーフローの脆弱性で、「Python 3.x」および「Python 2.7」に影響する。文字列を整形する処理など、 外部から入力された浮動小数点データを検証せずに利用している「Python」アプリケーションでリモートからサービス拒否(DoS)を引き起されたり、 任意のコードが実行されてしまう可能性がある。
ということであちらこちらリンクをたどったり検索してみると
CVE-2021-3177- Red Hat Customer Portal
Description
A flaw was found in python. A stack-based buffer overflow was discovered in the ctypes module provided within Python. Applications that use ctypes without carefully validating the input passed to it may be vulnerable to this flaw, which would allow an attacker to overflow a buffer on the stack and crash the application. The highest threat from this vulnerability is to system availability.
Additional Information
Bugzilla 1918168: CVE-2021-3177 python: stack-based buffer overflow in PyCArg_repr in _ctypes/callproc.c
CWE-120: Buffer Copy without Checking Size of Input (‘Classic Buffer Overflow’)
FAQ: Frequently asked questions about CVE-2021-3177
で、
課題 42938: [security] ctypes double representation BoF - Python tracker
ということらしい。 大昔、gawkで同様の問題(CVEにはなっていない)を修正したのを見たような記憶があるけど いつぐらいのことだったかなあ。
ALGOL?
別件で検索してたら C言語入門 - とほほのWWW入門 が引っかかった。
Copyright (C) 2020 杜甫々
初版:2020年7月26日 最終更新:2020年7月26日
割と新しいページのようで。
ふむふむと読み進んだら気になる記述を発見。 細かいのは除いて大物(?)はこの辺り。
C言語とは
- 1972年にAT&Tベル研究所で、UNIX の開発者であるのデニス・リッチーが主体となって開発しました。
- 元々 ALGOL という言語があり、ALGOL → B言語 → C言語の流れで「C言語」と命名されました。
どっから出てきたんだろう>ALGOL
値渡しと参照渡し
関数に引数を渡す方法として 値渡し(call by value) と 参照渡し(call by reference) があります。下記の例で、 x と y は単純に値自体を引数として渡す値渡しです。ans は、ans 変数への参照(=ポインタ)(&変数名) を渡し、 そのポインタの中身に答えを格納してもいらいます。int や float など小さなデータの場合は値渡し、 メモリコピーが性能に影響するような大きなデータ(構造体など)の場合や、受け取る値が複数の時などは、参照渡しを利用します。
これはなんというかその。
こういうのの指摘は受け付けているんだろうか?