f0a8d61
--- avrdude-5.5/usbtiny.c	2007-10-29 09:40:04.000000000 -0600
f0a8d61
+++ avrdude-5.5.patched/usbtiny.c	2008-01-06 07:13:41.000000000 -0700
f0a8d61
@@ -138,7 +138,7 @@
f0a8d61
     fprintf( stderr, "Operation %d not defined for this chip!\n", op );
f0a8d61
     return -1;
f0a8d61
   }
f0a8d61
-  memset(cmd, 0, sizeof(cmd));
f0a8d61
+  memset(cmd, 0, 4);
f0a8d61
   avr_set_bits(p->op[op], cmd);
f0a8d61
 
f0a8d61
   return pgm->cmd(pgm, cmd, res);
f0a8d61
@@ -286,19 +286,19 @@
f0a8d61
   int nbytes;
f0a8d61
 
f0a8d61
   // Make sure its empty so we don't read previous calls if it fails
f0a8d61
-  memset(res, '\0', sizeof(res) );
f0a8d61
+  memset(res, '\0', 4 );
f0a8d61
 
f0a8d61
   nbytes = usb_in( USBTINY_SPI,
f0a8d61
 		   (cmd[1] << 8) | cmd[0],  // convert to 16-bit words
f0a8d61
 		   (cmd[3] << 8) | cmd[2],  //  "
f0a8d61
-			res, sizeof(res), 8 * sck_period );
f0a8d61
+			res, 4, 8 * sck_period );
f0a8d61
   if (verbose > 1) {
f0a8d61
     // print out the data we sent and received
f0a8d61
-    printf( "CMD: [%02x %02x %02x %02x] [%02x %02x %02x %02x]\n",
f0a8d61
+    printf( "CMD: [%02x %02x %02x %02x] [%02x %02x %02x %02x] \n",
f0a8d61
 	    cmd[0], cmd[1], cmd[2], cmd[3],
f0a8d61
 	    res[0], res[1], res[2], res[3] );
f0a8d61
   }
f0a8d61
-  return ((nbytes == sizeof(res)) &&      // should have read 4 bytes
f0a8d61
+  return ((nbytes == 4) &&      // should have read 4 bytes
f0a8d61
 	  res[2] == cmd[1]);              // AVR's do a delayed-echo thing
f0a8d61
 }
f0a8d61