INASOFT 管理人のひとこと


フリーソフトダウンロードサイト「INASOFT」の管理人 矢吹拓也 が日々の「ひとこと」を語るページです。
2021年1月1日より、旧ブログ(blog.inasoft.org)からお引越ししました。
・INASOFT Webサイト: https://www.inasoft.org/
・管理人のふたこと(長文記事/寄稿文): https://www.inasoft.org/talk/
2022年7月下旬より再び本業多忙化してきているため、更新頻度は落ちます。 [2022/7/24 19:32]

目次 | ←前へ / 2016-02-21 00:00 / 次へ→ / 最新へ⇒

■ファイルサイズを求めるのにfseek()とftell()を使ってはいけなかった件

2016年 2月21日(日) 0:00:00 [さくらのブログから転記]



RSSRSS配信中
https://www.inasoft.org/



先日も追記しましたが、C言語でファイルサイズを求めるためにfseek() と ftell() を使う方法はダメなようです。



↓やってはいけないコーディング

fseek(fp, 0, SEEK_END);
long fsize = ftell(fp);
fseek(fp, 0, SEEK_SET);



詳細はJPCERTのページで。

要は、動作の保証されていない状態が生じてしまうので、今は上手く動いていたとしても、将来の環境であるとか、将来のバージョンの開発環境であるとか、別のOSに移植しようとしたときとかに、上手く動かなくなる可能性があるというわけですね。

当サイトで開発しているソフトの中の状況としては、「exeファイルが自分自身のMD5を計算し、改鋳や破損が発生していないかセルフチェックする」処理があります。使用箇所は多数。ちょっとヤバイ感じ。

幸い、現行のOS で使う限り、また、Visual Studio 2010 でビルドしている限りでは、実際問題は発生していません。

ただし、JPCERTのページにも書いているとおり、潜在的な脆弱性を作り込んでしまっている状況です。

というわけで、可能な範囲で改修を入れていきたいと考えています。

また同時に、比較的単純な改修で2GB以上のファイルの取り扱いが対応になる箇所にも、改修を入れていこうと思います。




目次 | ←前へ / 2016-02-21 00:00 / 次へ→ / 最新へ⇒


目次の表示:


ブログではないので、コメント機能とトラックバック機能は提供していません。ご質問・ご意見等はメールフィードバックまたはTwitter等からお願いします。いただいたご質問・ご意見などは、この「管理人のひとこと」の記事に追加、あるいは新規の記事にする形で一部または全文をそのまま、あるいは加工させていただいた上で、ご紹介させていただく場合があります。
当サイトでは掲載内容による不具合等に関する責任を持ちません。また、内容の正確性についての保証もありませんので、情報をご利用の際は、利用者の自己責任で確認をお願いします。本ページは公開から1年半後の任意のタイミングで削除される予定です。


- 最近の更新 -



3212455 (+0152)[+0214]

Copyright© 2010-2024 INASOFT