Corrected pointer error in ggsn.c
diff --git a/ggsn/ggsn.c b/ggsn/ggsn.c
index 74fe1cc..5011ed1 100644
--- a/ggsn/ggsn.c
+++ b/ggsn/ggsn.c
@@ -132,7 +132,7 @@
   }
 
   pdp_ntoeua(&member->addr, &pdp->eua);
-  pdp->peer = &member;
+  pdp->peer = member;
   pdp->ipif = tun; /* TODO */
   member->peer = pdp;
 
@@ -259,7 +259,7 @@
 	      PACKAGE, args_info.listen_arg);
       syslog(LOG_ERR, "Invalid listening address: %s!", 
 	     args_info.listen_arg);
-      return 1;
+      exit(1);
     }
     else {
       memcpy(&listen_.s_addr, host->h_addr, host->h_length);
@@ -275,21 +275,30 @@
     if(ippool_aton(&net, &mask, args_info.net_arg, 0)) {
       sys_err(LOG_ERR, __FILE__, __LINE__, 0,
 	      "Invalid network address: %s!", args_info.net_arg);
-      return -1;
+      exit(1);
     }
   }
+  else {
+    sys_err(LOG_ERR, __FILE__, __LINE__, 0,
+	    "Network address must be specified: %s!", args_info.net_arg);
+    exit(1);
+  }
 
   /* dynip                                                        */
   if (!args_info.dynip_arg) {
-    sys_err(LOG_ERR, __FILE__, __LINE__, 0,
-	    "No dynamic address pool given!");
-    return -1;
+    if (ippool_new(&ippool, args_info.net_arg, 
+		   IPPOOL_NONETWORK | IPPOOL_NOBROADCAST)) {
+      sys_err(LOG_ERR, __FILE__, __LINE__, 0,
+	      "Failed to allocate IP pool!");
+      exit(1);
+    }
   }
   else {
     if (ippool_new(&ippool, args_info.dynip_arg, 
 		   IPPOOL_NONETWORK | IPPOOL_NOBROADCAST)) {
       sys_err(LOG_ERR, __FILE__, __LINE__, 0,
 	      "Failed to allocate IP pool!");
+      exit(1);
     }
   }