問題タブ [overflow]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
10 に答える
6962 参照

java - Java乗算操作の動作

指定された数値を日からミリ秒に変換するメソッドを作成しました。

私は自分が何を間違えたかを理解するのに苦労しました。今私の質問: そのエラーはとても明白ですか?

修正された方法:

計算する前に整数をlongに変換しないと、完全に間違った結果が得られます。

0 投票する
1 に答える
1671 参照

.net - 一般的な原因 - .NET でのバッファ オーバーフロー エラー

.NET でのバッファ オーバーフロー エラーの一般的な原因を探しています。

マネージド .NET コードではバッファ オーバーフローが不可能であることはわかっています。ただし、.NET アプリケーションの範囲内では、この例外が引き続き発生する可能性があります。

思ったこと -

  • COM オブジェクト呼び出しに対する有効な引数
  • PInvoke/Win32 呼び出しに対する有効な引数

バッファ オーバーラン エラーをデバッグする最良の方法は何ですか?

0 投票する
1 に答える
1906 参照

asp.net - IE7はスクロールバーを自動的に表示しませんか?

IE7 で発生しているスクロールバーの問題を修正する方法があるかどうかを知りたかったのです。

これが私のCSSです:

HTML は次のとおりです。

他のブラウザでは問題なく動作しますが、何らかの理由で IE7 では動作しません。

明確にするために編集:

これが私が達成しようとしていることです:div固定された がwidthありheight、その中に がありgridviewます。gridviewの幅または高さが の固定サイズを超える場合、divにスクロール バーを表示したいと思いdivます。

0 投票する
3 に答える
560 参照

c# - C# でこの特定の操作オーバーフロー (CS0220 を参照) を行うのはなぜですか?

バイト単位で保存されたニブル情報を使用して、大きな Int64 を構築しようとしました。

次のコード行は期待どおりに機能します。

次の行でコンパイル エラー CS0220 "チェック モードでのコンパイル時に操作がオーバーフローします" が発生し、他の行では発生しないのはなぜですか?

結果は次のようになります。

それ以外の:

誰でもこれを説明できますか?シフト演算子で変換しますが、なぜこのアプローチがうまくいかないのか、まだ興味があります!

更新: (Int64)(0x0d << 28) を使用した場合にもエラーが発生します。

0 投票する
6 に答える
453 参照

overflow - SWAP 中のスタック オーバーフロー

3 番目の変数を使用せずに、2 つの変数の交換中に発生するオーバーフローに対処するにはどうすればよいでしょうか。XOR ソリューションは整数に対してのみ使用できると思います。他の変数タイプはどうですか?

0 投票する
8 に答える
358 参照

c++ - ポインターに追加するときにオーバーフロー チェックを安全に省略できる最小のオフセットはいくつですか?

ユーザー空間プログラムの「データ」ポインターは、アドレス 0 および 0xffffffff から安全な距離にあると期待できますか? そのため、オーバーフローをチェックせずにポインターに小さなオフセットを安全に追加できますか? p が定数文字バッファーまたは動的に割り当てられた文字列 (最新の 32 ビット以上のオペレーティング システム) への char ポインターである場合、p + n がオーバーフローしないと安全に想定できる最大の正の n は何ですか?

混乱を避けるために:オーバーフロー チェックについて話しているのであって、境界チェックについてではありません。例: m 文字の文字列の先頭へのポインター p があり、正のオフセット i で文字にアクセスする場合、i < m を確認するか、間接的に p + i < を確認する必要があります。 p + m。ただし、後者の場合、p + i がオーバーフローしないことも確認する必要があります。つまり、p + i >= p であることを確認する必要があります。

更新: OK、p + i が実際に逆参照されているかどうか、またはオーバーフローしているかどうかに関係なく、i > m の場合、p + i は有効な標準 C ではありません。しかし、私が本当に興味を持っている問題は、実際には p + n がオーバーフローない小さな n があるかどうかです。この質問に答えるには、最新のオペレーティング システムがアドレス空間をどのように編成しているかについて、ある程度の知識が必要です。

Update2: たとえそれが一般化できないとしても、特定の 1 つのプラットフォームについて聞くことはすでに非常に興味深いことです。できれば、あいまいな組み込みのものではないことをお勧めします。x86 または Power ベースの 32 ビット Win、Linux、および Mac が最も興味深いでしょう。

0 投票する
13 に答える
2698 参照

c++ - 整数オーバーフローの場合、 (unsigned int) * (int) の結果は? 符号なしまたは整数?

整数オーバーフローの場合の結果は(unsigned int) * (int)? unsignedまたはintoperator[]配列インデックス演算子 ( ) は、char*:intなどにどのような型をとりunsigned intますか?

私は次の関数を監査していましたが、突然この質問が発生しました。この関数には 17 行目に脆弱性があります。

wと の両方を考慮してくださいh。非常に大きな符号なし整数です。9 行目の乗算は、検証に合格する可能性があります。

問題は 17 行目です。掛け算: 結果が の場合int i、積が負になる可能性があり、結果として の前の位置にアクセスすることになります。結果が の場合、積は常に正になり、 の後の位置にアクセスすることになります。unsigned int wintbufunsigned intbuf

これを正当化するコードを書くのは難しいです:intは大きすぎます。誰かがこれについてアイデアを持っていますか?

製品のタイプを特定するドキュメントはありますか? 私はそれを検索しましたが、これまでのところ何も見つかりませんでした。

コンパイルされたオブジェクトファイルでは、それらは単なるバイトであるため、脆弱性に関する限り、(unsigned int) * (int)生成するunsigned intかどうかは問題ではないと思います。int次のコードは、製品のタイプに関係なく同じように機能します。

したがって、乗算が返す型は問題ではありません。int消費者関数が取るかどうかが重要ですunsigned

ここでの問題は、その機能がどれほど悪いか、または機能を改善するためにどのように機能を改善するかではありません。この機能には間違いなく脆弱性があります。問題は、標準から規定された動作に基づいた、関数の正確な動作に関するものです。

0 投票する
4 に答える
3091 参照

c - より大きな幅の整数に代入するときの C 整数オーバーフロー動作

Cで次のコードを実行すると:

結果として「-4000」が正しく出力されます。しかし、私は少し混乱しています。より大きな符号なし整数を他の整数から減算すると、算術オーバーフローが発生するのではないでしょうか? ここではどのようなキャスティング ルールが適用されますか? この質問は少し初心者のようですので、参考にしていただければ幸いです。

0 投票する
7 に答える
4444 参照

javascript - CSSスタイルオーバーフローを使用しているときにDIVに表示される実際のテキストにアクセスするにはどうすればよいですか:非表示ですか?

ページに次のコンテンツDIVがあり、動的テキストが表示されます。

次のCSSを使用して、追加のテキストを切り取ります。

このテキストをDIVにロードすると、次のようになります。

"Lorem ipsum dolor sit amet、consectetuer adipiscingelit。Praesentaliquam、justo convallis luctus rut​​rum、erat nulla fermentum diam、at nonummy quam anteacquam。Maecenasurnapurus、fermentum id、molestie in、commodo porttitor、felis。 lacus。Quisqueornarerisusquisligula。Phasellustristiquepurus a augue condimentumadipiscing。Aeneansagittis。Etiamleopede、rhoncus venenatis、tristique in、vulputate at、odio。Donecet ipsum et sapienvehiculanonummy。Suspen

... CSSにより、次のテキストのみがDIVに表示されます。

"Lorem ipsum dolor sit amet、consectetuer adipiscingelit。Praesentaliquam、justo convallis luctus rut​​rum、erat nulla fermentum diam、at nonummy quam anteacquam。Maecenasurnapurus、fermentum id、molestie in、commodo porttitor、felis。 lacus。Quisqueornarerisusquisligula。Phasellustristiquepurusaaugue」

これは期待どおりに機能します。

しかし、JavaScriptを使って表示されたテキストにアクセスできる方法があるのではないかと思っていました。DIVのプロパティにアクセスしようとすると、innerHTML元々DIVにロードされていたテキスト全体が返されます。

私の最終目標は、トリミングされたコンテンツの最後の単語を省略記号( "...")に置き換えることです。これはJavaScriptで実行できるので、CSSプロパティのように、IEだけでなくすべてのブラウザーで表示できると思いましたtext-overflow: hidden

何か案は?これは可能ですか?