Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 2 Sep 2019 07:52:40 +0000 (UTC)
From:      Peter Holm <pho@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   svn commit: r351684 - user/pho/stress2/misc
Message-ID:  <201909020752.x827qeJL061594@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: pho
Date: Mon Sep  2 07:52:39 2019
New Revision: 351684
URL: https://svnweb.freebsd.org/changeset/base/351684

Log:
  Added "Fixed by". Pointed out problem with an uninitialized "flags"
  variable. Style fixes.
  
  Sponsored by:	Dell EMC Isilon

Modified:
  user/pho/stress2/misc/sctp.sh

Modified: user/pho/stress2/misc/sctp.sh
==============================================================================
--- user/pho/stress2/misc/sctp.sh	Mon Sep  2 02:51:51 2019	(r351683)
+++ user/pho/stress2/misc/sctp.sh	Mon Sep  2 07:52:39 2019	(r351684)
@@ -5,6 +5,7 @@
 
 # "panic: general protection fault" seen:
 # https://people.freebsd.org/~pho/stress/log/sctp.txt
+# Fixed by r350626
 
 # $FreeBSD$
 
@@ -25,91 +26,92 @@ static int my_port_num;
 static void
 die(const char *s)
 {
-        perror(s);
-        exit(1);
+	perror(s);
+	exit(1);
 }
 
-static void
+	static void
 server(void)
 {
-        struct sctp_sndrcvinfo sndrcvinfo;
-        struct sockaddr_in servaddr = {
-                .sin_family = AF_INET,
-                .sin_addr.s_addr = htonl(INADDR_ANY),
-                .sin_port = htons(my_port_num),
-        };
-        struct sctp_initmsg initmsg = {
-                .sinit_num_ostreams = 5,
-                .sinit_max_instreams = 5,
-                .sinit_max_attempts = 4,
-        };
-        int listen_fd, conn_fd, flags, ret, in;
+	struct sctp_sndrcvinfo sndrcvinfo;
+	struct sockaddr_in servaddr = {
+		.sin_family = AF_INET,
+		.sin_addr.s_addr = htonl(INADDR_ANY),
+		.sin_port = htons(my_port_num),
+	};
+	struct sctp_initmsg initmsg = {
+		.sinit_num_ostreams = 5,
+		.sinit_max_instreams = 5,
+		.sinit_max_attempts = 4,
+	};
+	int listen_fd, conn_fd, flags, ret, in;
 
-        listen_fd = socket(AF_INET, SOCK_STREAM, IPPROTO_SCTP);
-        if (listen_fd < 0)
-                die("socket");
+	listen_fd = socket(AF_INET, SOCK_STREAM, IPPROTO_SCTP);
+	if (listen_fd < 0)
+		die("socket");
 
-        ret = bind(listen_fd, (struct sockaddr *) &servaddr, sizeof(servaddr));
-        if (ret < 0)
-                die("bind");
+	ret = bind(listen_fd, (struct sockaddr *) &servaddr, sizeof(servaddr));
+	if (ret < 0)
+		die("bind");
 
-        ret = setsockopt(listen_fd, IPPROTO_SCTP, SCTP_INITMSG, &initmsg,
-	    sizeof(initmsg));
-        if (ret < 0)
-                die("setsockopt");
+	ret = setsockopt(listen_fd, IPPROTO_SCTP, SCTP_INITMSG, &initmsg,
+			sizeof(initmsg));
+	if (ret < 0)
+		die("setsockopt");
 
-        ret = listen(listen_fd, initmsg.sinit_max_instreams);
-        if (ret < 0)
-                die("listen");
+	ret = listen(listen_fd, initmsg.sinit_max_instreams);
+	if (ret < 0)
+		die("listen");
 
-        for (;;) {
-                char buffer[1024];
+	for (;;) {
+		char buffer[1024];
 
-                printf("Waiting for connection\n");
-                fflush(stdout);
+		printf("Waiting for connection\n");
+		fflush(stdout);
 
-                conn_fd = accept(listen_fd, (struct sockaddr *) NULL, NULL);
-                if(conn_fd < 0)
-                        die("accept()");
+		conn_fd = accept(listen_fd, (struct sockaddr *) NULL, NULL);
+		if(conn_fd < 0)
+			die("accept()");
 
-                printf("New client connected\n");
-                fflush(stdout);
+		printf("New client connected\n");
+		fflush(stdout);
 
-                in = sctp_recvmsg(conn_fd, buffer, sizeof(buffer), NULL, 0,
-		    &sndrcvinfo, &flags);
-                if (in > 0) {
-                        printf("Received data: %s\n", buffer);
-                        fflush(stdout);
-                }
+		/* Note that flags is uninitialized here */
+		in = sctp_recvmsg(conn_fd, buffer, sizeof(buffer), NULL, 0,
+				&sndrcvinfo, &flags);
+		if (in > 0) {
+			printf("Received data: %s\n", buffer);
+			fflush(stdout);
+		}
 
-                close(conn_fd);
-        }
+		close(conn_fd);
+	}
 }
 
 static void
 client(void)
 {
-        struct sockaddr_in servaddr = {
-                .sin_family = AF_INET,
-                .sin_port = htons(my_port_num),
-                .sin_addr.s_addr = inet_addr("127.0.0.1"),
-        };
-        int conn_fd, ret;
-        const char *msg = "Hello, Server!";
+	struct sockaddr_in servaddr = {
+		.sin_family = AF_INET,
+		.sin_port = htons(my_port_num),
+		.sin_addr.s_addr = inet_addr("127.0.0.1"),
+	};
+	int conn_fd, ret;
+	const char *msg = "Hello, Server!";
 
-        conn_fd = socket(AF_INET, SOCK_STREAM, IPPROTO_SCTP);
-        if (conn_fd < 0)
-                die("socket()");
+	conn_fd = socket(AF_INET, SOCK_STREAM, IPPROTO_SCTP);
+	if (conn_fd < 0)
+		die("socket()");
 
-        ret = connect(conn_fd, (struct sockaddr *) &servaddr, sizeof(servaddr));
-        if (ret < 0)
-                die("connect()");
+	ret = connect(conn_fd, (struct sockaddr *) &servaddr, sizeof(servaddr));
+	if (ret < 0)
+		die("connect()");
 
-        ret = sctp_sendmsg(conn_fd, (void *) msg, strlen(msg) + 1, NULL, 0, 0, 0, 0, 0, 0 );
-        if (ret < 0)
-                die("sctp_sendmsg");
+	ret = sctp_sendmsg(conn_fd, (void *) msg, strlen(msg) + 1, NULL, 0, 0, 0, 0, 0, 0 );
+	if (ret < 0)
+		die("sctp_sendmsg");
 
-        close(conn_fd);
+	close(conn_fd);
 }
 
 int
@@ -117,12 +119,12 @@ main(int argc __unused, char *argv[])
 {
 
 	my_port_num = atoi(argv[1]);
-        if (strstr(basename(argv[0]), "server"))
-                server();
-        else
-                client();
+	if (strstr(basename(argv[0]), "server"))
+		server();
+	else
+		client();
 
-        return 0;
+	return (0);
 }
 EOF
 
@@ -153,5 +155,5 @@ pkill server
 wait
 while pkill swap; do :; done
 wait
-rm -f /tmp/server /tmp/client
+rm -f /tmp/sctp.c /tmp/server /tmp/client
 exit 0



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201909020752.x827qeJL061594>