Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 16 Aug 2010 15:51:41 +0000 (UTC)
From:      Attilio Rao <attilio@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r211398 - projects/sv/usr.sbin/netdumpsrv
Message-ID:  <201008161551.o7GFpfOl002850@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: attilio
Date: Mon Aug 16 15:51:41 2010
New Revision: 211398
URL: http://svn.freebsd.org/changeset/base/211398

Log:
  Add some assertions in order to verify arguments passings.

Modified:
  projects/sv/usr.sbin/netdumpsrv/netdump_server.c

Modified: projects/sv/usr.sbin/netdumpsrv/netdump_server.c
==============================================================================
--- projects/sv/usr.sbin/netdumpsrv/netdump_server.c	Mon Aug 16 15:18:30 2010	(r211397)
+++ projects/sv/usr.sbin/netdumpsrv/netdump_server.c	Mon Aug 16 15:51:41 2010	(r211398)
@@ -23,6 +23,7 @@
  * SUCH DAMAGE.
  */
 
+#include <assert.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -112,6 +113,8 @@ static struct netdump_client *alloc_clie
     struct hostent *hp;
     int i, fd, bufsz;
 
+    assert(ip != NULL);
+
     client = calloc(1, sizeof(*client));
     if (!client)
     {
@@ -269,6 +272,9 @@ static struct netdump_client *alloc_clie
 
 static void free_client(struct netdump_client *client)
 {
+
+    assert(client != NULL);
+
     /* Remove from the list */
     SLIST_REMOVE(&clients, client, netdump_client, iter);
     fclose(client->infofile);
@@ -279,8 +285,11 @@ static void free_client(struct netdump_c
 
 static void exec_handler(struct netdump_client *client, const char *reason)
 {
-    int pid=fork();
+    int pid;
+
+    assert(client != NULL);
 
+    pid=fork();
     if (pid == -1)
     {
 	perror("fork");
@@ -304,6 +313,9 @@ static void exec_handler(struct netdump_
 
 static void handle_timeout(struct netdump_client *client)
 {
+
+    assert(client != NULL);
+
     printf("Client %s timed out\n", client_ntoa(client));
     fputs("Dump incomplete: client timed out\n", client->infofile);
     exec_handler(client, "timeout");
@@ -337,6 +349,8 @@ static void send_ack(struct netdump_clie
     struct netdump_ack ack;
     int tryagain;
     
+    assert(client != NULL && msg != NULL);
+
     bzero(&ack, sizeof(ack));
     ack.seqno = htonl(msg->hdr.seqno);
 
@@ -366,6 +380,8 @@ static int handle_herald(struct sockaddr
 {
     int freed_client=0;
 
+    assert(from != NULL && msg != NULL);
+
     if (client)
     {
 	if (!client->any_data_rcvd)
@@ -401,19 +417,21 @@ static int handle_herald(struct sockaddr
 
 static int handle_kdh(struct netdump_client *client, struct netdump_msg *msg)
 {
-    struct kerneldumpheader *h=(void *)msg->data;
+    struct kerneldumpheader *h;
     uint64_t dumplen;
     FILE *f;
     time_t t;
     int parity_check;
 
+    assert(msg != NULL);
+
     if (!client)
     {
 	return 0;
     }
 
     client->any_data_rcvd = 1;
-
+    h=(struct kerneldumpheader *)msg->data;
     f = client->infofile;
     
     if (msg->hdr.len < sizeof(struct kerneldumpheader))
@@ -460,6 +478,9 @@ static int handle_kdh(struct netdump_cli
 
 static int handle_vmcore(struct netdump_client *client, struct netdump_msg *msg)
 {
+
+    assert(msg != NULL);
+
     if (!client)
     {
 	return 0;
@@ -492,6 +513,9 @@ static int handle_vmcore(struct netdump_
 
 static int handle_finish(struct netdump_client *client, struct netdump_msg *msg)
 {
+
+    assert(msg != NULL);
+
     if (!client)
     {
 	return 0;
@@ -519,6 +543,8 @@ static int receive_message(int sock, str
     socklen_t fromlen;
     ssize_t len;
 
+    assert(from != NULL && fromstr != NULL && msg != NULL);
+
     bzero(from, sizeof(*from));
     from->sin_family = AF_INET;
     from->sin_len = fromlen = sizeof(*from);
@@ -563,6 +589,8 @@ static int handle_packet(struct netdump_
 {
     int freed_client;
 
+    assert(from != NULL && fromstr != NULL && msg != NULL);
+
     if (client)
     {
 	client->last_msg = time(NULL);



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