Fix broken testcase 4 in recvfrom01 and cleanup the test some.  Recvfrom01 will now fail (correctly I believe) on 2.4 but will pass on 2.5.
diff --git a/testcases/kernel/syscalls/recvfrom/recvfrom01.c b/testcases/kernel/syscalls/recvfrom/recvfrom01.c
index 44737d6..2d71439 100644
--- a/testcases/kernel/syscalls/recvfrom/recvfrom01.c
+++ b/testcases/kernel/syscalls/recvfrom/recvfrom01.c
@@ -63,8 +63,14 @@
 struct sockaddr_in sin1, from;
 int	fromlen;
 
-void setup(void), setup0(void), setup1(void), setup2(void),
-	cleanup(void), cleanup0(void), cleanup1(void);
+void setup(void);
+void setup0(void);
+void setup1(void);
+void setup2(void);
+void cleanup(void);
+void cleanup0(void);
+void cleanup1(void);
+pid_t start_server(struct sockaddr_in *);
 
 struct test_case_t {		/* test case structure */
 	int	domain;	/* PF_INET, PF_UNIX, ... */
@@ -81,20 +87,26 @@
 	void	(*cleanup)(void);
 	char *desc;
 } tdat[] = {
+/* 1 */
 	{ PF_INET, SOCK_STREAM, 0, buf, sizeof(buf), 0,
 		(struct sockaddr *)&from, &fromlen,
 		-1, EBADF, setup0, cleanup0, "bad file descriptor" },
+/* 2 */
 	{ 0, 0, 0, buf, sizeof(buf), 0, (struct sockaddr *)&from, &fromlen,
 		-1, ENOTSOCK, setup0, cleanup0, "invalid socket" },
+/* 3 */
 	{ PF_INET, SOCK_STREAM, 0, (void *)buf, sizeof(buf), 0,
 		(struct sockaddr *)-1, &fromlen,
 		0, ENOTSOCK, setup1, cleanup1, "invalid socket buffer" },
+/* 4 */
 	{ PF_INET, SOCK_STREAM, 0, (void *)buf, sizeof(buf), 0,
 		(struct sockaddr *)&from, &fromlen,
-		0, ENOTSOCK, setup2, cleanup1, "invalid socket length" },
+		-1, EINVAL, setup2, cleanup1, "invalid socket length" },
+/* 5 */
 	{ PF_INET, SOCK_STREAM, 0, (void *)-1, sizeof(buf), 0,
 		(struct sockaddr *)&from, &fromlen,
 		-1, EFAULT, setup1, cleanup1, "invalid recv buffer" },
+/* 6 */
 	{ PF_INET, SOCK_STREAM, 0, (void *)buf, sizeof(buf), -1,
 		(struct sockaddr *)&from, &fromlen,
 		-1, EINVAL, setup1, cleanup1, "invalid flags set" },
@@ -150,6 +162,8 @@
 		}
 	}
 	cleanup();
+	/*NOT REACHED*/
+	return 0;
 }	/* End main */
 
 pid_t pid;
@@ -202,7 +216,7 @@
 			strerror(errno));
 	}
 	if (tdat[testno].type == SOCK_STREAM &&
-	    connect(s, &sin1, sizeof(sin1)) < 0) {
+	    connect(s, (struct sockaddr *)&sin1, sizeof(sin1)) < 0) {
 		tst_brkm(TBROK, cleanup, "connect failed: ", strerror(errno));
 	}
 	fromlen = sizeof(from);
@@ -229,7 +243,6 @@
 	fd_set	afds, rfds;
 	pid_t	pid;
 	int	sfd, nfds, cc, fd;
-	char	c;
 
 	sfd = socket(PF_INET, SOCK_STREAM, 0);
 	if (sfd < 0) {
@@ -237,7 +250,7 @@
 			strerror(errno));
 		return -1;
 	}
-	if (bind(sfd, &sin1, sizeof(sin1)) < 0) {
+	if (bind(sfd, (struct sockaddr *)&sin1, sizeof(sin1)) < 0) {
 		tst_brkm(TBROK, cleanup, "server bind failed: %s",
 			strerror(errno));
 		return -1;
@@ -278,7 +291,7 @@
 			int newfd;
 
 			fromlen = sizeof(fsin);
-			newfd = accept(sfd, &fsin, &fromlen);
+			newfd = accept(sfd, (struct sockaddr *)&fsin, &fromlen);
 			if (newfd >= 0)
 				FD_SET(newfd, &afds);
 			/* send something back */