プログラミング

プロおよび熱狂的プログラマーのためのQ&A

5
なぜこのコードはバッファオーバーフロー攻撃に対して脆弱なのですか?
int func(char* str) { char buffer[100]; unsigned short len = strlen(str); if(len >= 100) { return (-1); } strncpy(buffer,str,strlen(str)); return 0; } このコードはバッファオーバーフロー攻撃に対して脆弱であり、私はその理由を理解しようとしています。の代わりにとlen宣言されていることに関係していると思いますが、本当にわかりません。shortint 何か案は?


11
インターフェイスのコンストラクタ?
インターフェイスでコンストラクタを定義することは不可能であることを知っています。しかし、それは非常に役立つと思うので、なぜだろうと思います。 したがって、クラスの一部のフィールドがこのインターフェースのすべての実装に対して定義されていることを確認できます。 たとえば、次のメッセージクラスについて考えます。 public class MyMessage { public MyMessage(String receiver) { this.receiver = receiver; } private String receiver; public void send() { //some implementation for sending the mssage to the receiver } } メッセージインターフェースを実装するクラスを増やすために、このクラスのインターフェースを定義する場合、sendメソッドのみを定義でき、コンストラクターは定義できません。では、このクラスのすべての実装に実際にレシーバーセットがあることをどのように確認できますか?setReceiver(String receiver)私がこのようなメソッドを使用する場合、このメソッドが本当に呼び出されるかどうか確信が持てません。コンストラクタでは、それを確認できました。
148 java  interface 

9
RPMファイルを作成するために最低限必要なことは何ですか?
Linuxバイナリ "foobar"を配布するためのRPMファイルを作成したいのですが、いくつかの依存関係があります。設定ファイル/etc/foobar.confがあり、/ usr / bin / foobarにインストールする必要があります。 残念ながら、RPMのドキュメントは27チャプターの長さで、他のプラットフォーム用の.debとEXEインストーラーの作成にも忙しいので、座ってこれを読む日は本当にありません。 RPMを作成するために最低限必要なことは何ですか?foob​​arバイナリとfoobar.confが現在の作業ディレクトリにあると想定します。
148 rpm  rpmbuild 



6
先頭の二重スラッシュを使用してURLのプロトコルを継承することの欠点はありますか?つまり、src =“ // domain.com”
外部ドメインから画像をロードするスタイルシートがあり、現在のURLに基​​づいて、セキュアオーダーページからhttps://から、他のページからhttp://からロードする必要があります。ダブルスラッシュでURLを開始すると、現在のプロトコルを継承することがわかりました。すべてのブラウザがこの手法をサポートしていますか? html ex: <img src="//cdn.domain.com/logo.png" /> css ex: .class { background: url(//cdn.domain.com/logo.png); }
148 http  url  https  url-protocol 

1
gitリポジトリで依存関係をリンクするにはどうすればよいですか?
私のスクリプトでは、自分のリポジトリを持つライブラリ(私のものまたは他のもの)をよく使用します。私はそれらを私のリポジトリに複製したくありません、そして新しいバージョンが出るたびにそれらを更新することに行き詰まってしまいたくありません。ただし、誰かがレポを複製しても、ローカルで機能し、リンクが壊れていないはずです。 私が何ができるかについてのアイデアはありますか?


5
(NaN!= NaN)と(NaN!== NaN)の違いは何ですか?
まず最初に、私は方法isNaN()とNumber.isNaN()作業を知っていることを述べたいと思います。私はデビッドフラナガンによる明確なガイドを読んでいて、値がNaN次の値であるかどうかを確認する方法の例を示しています x !== x これは、になりますtrue場合にのみxですNaN。 しかし今、私は質問があります。なぜ彼は厳密な比較を使用するのですか?どうやら x != x 同じように動作します。両方のバージョンを使用しても安全ですか、またはtruefor x !== xおよびfalseforで返されるJavaScriptの値が不足していますx != xか?
148 javascript  nan 

5
拡張GCC 6オプティマイザが実用的なC ++コードを壊すのはなぜですか?
GCC 6には新しいオプティマイザ機能があります。それthisは常にがnull ではないことを想定し、それに基づいて最適化します。 値の範囲の伝播は、C ++メンバー関数のthisポインターがnullでないことを前提としています。これにより、一般的なnullポインターチェックが不要になりますが、一部の非準拠コードベース(Qt-5、Chromium、KDevelopなど)も破損します。一時的な回避策として、-fno-delete-null-pointer-checksを使用できます。間違ったコードは、-fsanitize = undefinedを使用して識別できます。 変更文書は、頻繁に使用される驚くべき量のコードを破壊するため、これを危険だと明確に呼んでいます。 なぜこの新しい仮定が実用的なC ++コードを壊すのでしょうか?不注意または知識のないプログラマーがこの特定の未定義の動作に依存する特定のパターンはありますか?if (this == NULL)不自然なため、誰も書いていないようです。


3
javascript node.js next()
nextnode.jsで多くの使用が見られます。 それは何ですか、それはどこから来ましたか?それは何をするためのものか?クライアント側で使用できますか? 申し訳ありませんが、ここでは例として使用されています:http : //dailyjs.com/2010/12/06/node-tutorial-5/ loadUser関数を探します。
148 javascript  node.js  next 

5
ソリューションで未使用のNuGetパッケージを見つけるにはどうすればよいですか?
ソリューションで未使用のNuGetパッケージを見つけるにはどうすればよいですか? インストール済みのパッケージに多くの解決策があり、多数の更新プログラムがあるとフラグが立てられています。 しかし、私は重大な変更があるのではないかと懸念しているため、まず未使用のパッケージを削除してクリーンアップしたいと思います。

19
Jelly Bean DatePickerDialog —キャンセルする方法はありますか?
--- モデレーターへの注意:今日(7月15日)、私は誰かがすでにこの問題に直面したことに気付きましたここに。しかし、私は問題についてより良い説明を提供したと思うので、これを複製として閉じることが適切かどうかはわかりません。他の質問を編集して、そこにこのコンテンツを貼り付ける必要があるかどうかはわかりませんが、他の誰かの質問をあまりにも変更することに抵抗があります。--- ここに変なものがあります。 問題は、ビルドするSDKに依存するとは思わない。重要なのは、デバイスのOSバージョンです。 問題#1:デフォルトでの不整合 DatePickerDialogジェリービーンに(?)に変更となりましたのみ提供して完了を [ ]ボタンます。以前のバージョンには[ キャンセル ]ボタンが含まれており、これはユーザーエクスペリエンスに影響を与える可能性があります(以前のAndroidバージョンとの不整合、筋肉のメモリ)。 複製:基本的なプロジェクトを作成します。これを入れてくださいonCreate: DatePickerDialog picker = new DatePickerDialog( this, new OnDateSetListener() { @Override public void onDateSet(DatePicker v, int y, int m, int d) { Log.d("Picker", "Set!"); } }, 2012, 6, 15); picker.show(); 予想: Aキャンセルダイアログに表示されるボタンをクリックします。 現在: A、キャンセルボタンが表示されません。 スクリーンショット: 4.0.3(OK)と4.1.1(おそらく間違っていますか?) 問題#2:誤った却下動作 ダイアログは実際に呼び出す必要があるリスナーを呼び出し、その後常に呼び出しますOnDateSetListenerリスナーをリスナーをます。キャンセルしてもsetメソッドが呼び出され、設定するとメソッドが2回呼び出されます。 複製:#1コードを使用しますが、以下のコードを追加します(これにより#1が解決されますが、視覚的/ UIのみが表示されます)。 …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.