http://packetstormsecurity.org/UNIX/admin/xscreensaver-4.14.tar.gz
[xscreensaver] / hacks / metaballs.c
index 5d0f63dbc67c237b693023f9605c39dfe25384c2..d814a80c29cd4ddabd5e44d2e90cea825ef740d3 100644 (file)
@@ -56,7 +56,7 @@ typedef struct
   short xpos,ypos;
 } BLOB;
 
-static unsigned char nBlobCount;
+static unsigned int nBlobCount;
 static unsigned char radius;
 static unsigned char delta;
 static unsigned char dradius;
@@ -225,7 +225,7 @@ static void Initialize( Display *pDisplay, Window Win, GC *pGC, XImage **ppImage
 
        /* Find the preferred bits-per-pixel. (jwz) */
        {
-               int i, pfvc = 0;
+               int pfvc = 0;
                XPixmapFormatValues *pfv = XListPixmapFormats( pDisplay, &pfvc );
                for( i=0; i<pfvc; i++ )
                        if( pfv[ i ].depth == XWinAttribs.depth )
@@ -265,6 +265,8 @@ static void Initialize( Display *pDisplay, Window Win, GC *pGC, XImage **ppImage
          radius = 100;
        
        radius = (radius / 100.0) * (iWinHeight >> 3);
+        if (radius >= 128) /* should use UCHAR_MAX? */
+          radius = 127; /* dradius should fit in u_char */
 
        dradius = radius * 2;
        sradius = radius * radius;