[haiku-commits] r41182 - haiku/trunk/src/apps/icon-o-matic/generic/gui/scrollview

  • From: superstippi@xxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Mon, 4 Apr 2011 17:36:23 +0200 (CEST)

Author: stippi
Date: 2011-04-04 17:36:23 +0200 (Mon, 04 Apr 2011)
New Revision: 41182
Changeset: https://dev.haiku-os.org/changeset/41182

Modified:
   haiku/trunk/src/apps/icon-o-matic/generic/gui/scrollview/ScrollView.cpp
Log:
Fixed buffer overrun, CID 4338.


Modified: 
haiku/trunk/src/apps/icon-o-matic/generic/gui/scrollview/ScrollView.cpp
===================================================================
--- haiku/trunk/src/apps/icon-o-matic/generic/gui/scrollview/ScrollView.cpp     
2011-04-04 09:39:25 UTC (rev 41181)
+++ haiku/trunk/src/apps/icon-o-matic/generic/gui/scrollview/ScrollView.cpp     
2011-04-04 15:36:23 UTC (rev 41182)
@@ -138,31 +138,34 @@
          fStartPoint(0, 0),
          fStartScrollOffset(0, 0)
 {
-//printf("ScrollCorner::ScrollCorner(%p)\n", scrollView);
        SetViewColor(B_TRANSPARENT_32_BIT);
-//printf("setting up bitmap 0\n");
-       fBitmaps[0] = new BBitmap(BRect(0.0f, 0.0f, sBitmapWidth, 
sBitmapHeight), sColorSpace);
-//     fBitmaps[0]->SetBits((void *)sScrollCornerNormalBits, 
fBitmaps[0]->BitsLength(), 0L, sColorSpace);
-       char *bits = (char *)fBitmaps[0]->Bits();
+
+       fBitmaps[0] = new BBitmap(BRect(0.0f, 0.0f, sBitmapWidth - 1,
+               sBitmapHeight - 1), sColorSpace);
+       char* bits = (char*)fBitmaps[0]->Bits();
        int32 bpr = fBitmaps[0]->BytesPerRow();
-       for (int i = 0; i <= sBitmapHeight; i++, bits += bpr)
-               memcpy(bits, &sScrollCornerNormalBits[i * sBitmapHeight * 4], 
sBitmapWidth * 4);
+       for (int i = 0; i < sBitmapHeight; i++, bits += bpr) {
+               memcpy(bits, &sScrollCornerNormalBits[i * sBitmapHeight * 4],
+                       sBitmapWidth * 4);
+       }
 
-//printf("setting up bitmap 1\n");
-       fBitmaps[1] = new BBitmap(BRect(0.0f, 0.0f, sBitmapWidth, 
sBitmapHeight), sColorSpace);
-//     fBitmaps[1]->SetBits((void *)sScrollCornerPushedBits, 
fBitmaps[1]->BitsLength(), 0L, sColorSpace);
-       bits = (char *)fBitmaps[1]->Bits();
+       fBitmaps[1] = new BBitmap(BRect(0.0f, 0.0f, sBitmapWidth - 1,
+               sBitmapHeight - 1), sColorSpace);
+       bits = (char*)fBitmaps[1]->Bits();
        bpr = fBitmaps[1]->BytesPerRow();
-       for (int i = 0; i <= sBitmapHeight; i++, bits += bpr)
-               memcpy(bits, &sScrollCornerPushedBits[i * sBitmapHeight * 4], 
sBitmapWidth * 4);
+       for (int i = 0; i < sBitmapHeight; i++, bits += bpr) {
+               memcpy(bits, &sScrollCornerPushedBits[i * sBitmapHeight * 4],
+                       sBitmapWidth * 4);
+       }
 
-//printf("setting up bitmap 2\n");
-       fBitmaps[2] = new BBitmap(BRect(0.0f, 0.0f, sBitmapWidth, 
sBitmapHeight), sColorSpace);
-//     fBitmaps[2]->SetBits((void *)sScrollCornerDisabledBits, 
fBitmaps[2]->BitsLength(), 0L, sColorSpace);
-       bits = (char *)fBitmaps[2]->Bits();
+       fBitmaps[2] = new BBitmap(BRect(0.0f, 0.0f, sBitmapWidth - 1,
+               sBitmapHeight - 1), sColorSpace);
+       bits = (char*)fBitmaps[2]->Bits();
        bpr = fBitmaps[2]->BytesPerRow();
-       for (int i = 0; i <= sBitmapHeight; i++, bits += bpr)
-               memcpy(bits, &sScrollCornerDisabledBits[i * sBitmapHeight * 4], 
sBitmapWidth * 4);
+       for (int i = 0; i < sBitmapHeight; i++, bits += bpr) {
+               memcpy(bits, &sScrollCornerDisabledBits[i * sBitmapHeight * 4],
+                       sBitmapWidth * 4);
+       }
 }
 
 // destructor


Other related posts:

  • » [haiku-commits] r41182 - haiku/trunk/src/apps/icon-o-matic/generic/gui/scrollview - superstippi