diff -ru wmii-3/cmd/wm/fs.c wmii-3-osx/cmd/wm/fs.c
--- wmii-3/cmd/wm/fs.c	2006-05-19 07:20:53.000000000 -0400
+++ wmii-3-osx/cmd/wm/fs.c	2006-05-25 23:23:54.000000000 -0400
@@ -70,7 +70,7 @@
  */
 
 Qid root_qid;
-const char *err;
+static const char *err;
 
 /* IXP stuff */
 
@@ -1359,7 +1359,7 @@
 		}
 		break;
 	case FsFborder:
-		if(fcall->count > sizeof(buf))
+		if(fcall->count > sizeof(buf) - 1)
 			return Ebadvalue;
 		memcpy(buf, fcall->data, fcall->count);
 		buf[fcall->count] = 0;
@@ -1372,7 +1372,7 @@
 	case FsFtags:
 		if(dir_type == FsDroot)
 			return Enoperm;
-		if(!fcall->count || (fcall->count > sizeof(buf)))
+		if(!fcall->count || (fcall->count > sizeof(buf) - 1))
 			return Ebadvalue;
 		memcpy(buf, fcall->data, fcall->count);
 		buf[fcall->count] = 0;
@@ -1388,7 +1388,7 @@
 		draw_client(cl);
 		break;
 	case FsFgeom:
-		if(fcall->count > sizeof(buf))
+		if(fcall->count > sizeof(buf) - 1)
 			return Ebadvalue;
 		memcpy(buf, fcall->data, fcall->count);
 		buf[fcall->count] = 0;
@@ -1469,7 +1469,7 @@
 	case FsFgrabmod:
 		{
 			unsigned long mod;
-			if(fcall->count > sizeof(buf))
+			if(fcall->count > sizeof(buf) - 1)
 				return Ebadvalue;
 			memcpy(buf, fcall->data, fcall->count);
 			buf[fcall->count] = 0;
@@ -1484,7 +1484,7 @@
 		}
 		break;
 	case FsFcolw:
-		if(fcall->count > sizeof(buf))
+		if(fcall->count > sizeof(buf) - 1)
 			return Ebadvalue;
 		memcpy(buf, fcall->data, fcall->count);
 		buf[fcall->count] = 0;
@@ -1502,7 +1502,7 @@
 		resize_bar();
 		break;
 	case FsFmode:
-		if(fcall->count > sizeof(buf))
+		if(fcall->count > sizeof(buf) - 1)
 			return Ebadvalue;
 		if(dir_type == FsDarea && !i2)
 			return Enofile;
@@ -1520,7 +1520,7 @@
 			def.colmode = i;
 		break;
 	case FsFevent:
-		if(fcall->count > sizeof(buf))
+		if(fcall->count > sizeof(buf) - 1)
 			return Ebadvalue;
 		if(fcall->count) {
 			memcpy(buf, fcall->data, fcall->count);



