طفح عدد صحيح

يحدث عندما تزيد القيمة المراد تخزينها عن المجال المتاح لنوع التخزين، بمعنى أن الذاكرة المتاحة لا تكفي تمثيل القيمة.

بالنسبة للأعداد الموجبة وكذلك السالبة في الأنظمة المتممة ثنائيا يؤدي الطفح إلى الرجوع لأصغر قيمة ممكنة، فمثلا نوع uint32_t حجمه 32 بت. في هذه الحالة سيعود إلى الصفر عند محاولة تخزين رقم 4294967296 (2 مرفوعة لأس 32) .

توفر المعالجات في العادة إمكانية الكشف عن حدوث طفح. مثلا عائلة x86 توفر OF ‏ (Overflow Bit) يمكن التأكد من قيمتها لضمان عدم حدوث طفح.

التعامل مع الطفح 

في حالة أن لغة البرمجة لا تقوم بمراقبة سير العمليات الحسابية، يجب على المبرمج القيام بالاحتياطات اللازمة لمنع الطفح عند إجراء العمليات الحسابية، وذلك بالتأكد قبل العملية من أن نائج العملية وأي نتائج وسيطة ستكون داخل المجال المسموح.
في لغة السي، يجب تولية عناية خاصة للطفح لأن طفح عدد صحيح ذو إشارة في السي يؤدي إلى سلوك غير معرف. لهذا السبب تقوم الكثير من معالجات السي باعتبار الطفح غير ممكن الحدوث، وتقوم با الاستمثال على ذلك الأساس وربما يؤدي ذلك إلى نتائج خاطئة وأحيانا كارثية.

في اللغات التي لا تشترط تحديد نوع معين للمتغير، يتم عادة تحويل المتغير إلى نوع عدد صحيح جديد لمنع الطفح. من الأمثلة على ذلك بايثون وروبي بينما تقوم لغات مثل PHP بالتحويل إلى نوع فاصلة عائمة.

في حالة حدوث طفح لم يتم التعامل معه ربما يتغير سير البرنامج. يتمكن المستخدم جراء ذلك من التأثير على عمل البرنامج بطرق لم يخطط لها المبرمج وهو مايؤدي إلى ثغرات أمنية.

مراجع 

أخطاء البرمجة
استغلالات أمن الحاسوب
حسابيات حاسوبية