]> arthur.barton.de Git - netatalk.git/commitdiff
MFH: 1.16 - Fix NULL pointer defeference.
authorjmarcus <jmarcus>
Wed, 13 Feb 2002 15:16:53 +0000 (15:16 +0000)
committerjmarcus <jmarcus>
Wed, 13 Feb 2002 15:16:53 +0000 (15:16 +0000)
etc/afpd/afp_config.c

index ff584cfe8205823e2e7c317273edd219b3ef903f..0928f3bcae644a920c29514378c85816bdf7cf85 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: afp_config.c,v 1.7.2.2 2001-12-16 23:26:17 jmarcus Exp $
+ * $Id: afp_config.c,v 1.7.2.3 2002-02-13 15:16:53 jmarcus Exp $
  *
  * Copyright (c) 1997 Adrian Sun (asun@zoology.washington.edu)
  * All Rights Reserved.  See COPYRIGHT.
@@ -280,6 +280,7 @@ static AFPConfig *DSIConfigInit(const struct afp_options *options,
     SLPError callbackerr;
     SLPHandle hslp;
     struct servent *afpovertcp;
+       int afp_port = 548;
 #endif /* USE_SRVLOC */
 
     if ((config = (AFPConfig *) calloc(1, sizeof(AFPConfig))) == NULL) {
@@ -318,11 +319,14 @@ static AFPConfig *DSIConfigInit(const struct afp_options *options,
      * use a non-default port, they can, but be aware, this server might not
      * show up int the Network Browser. */
     afpovertcp = getservbyname("afpovertcp", "tcp");
+       if (afpovertcp != NULL) {
+               afp_port = afpovertcp->s_port;
+       }
     if (strlen(options->hostname) > (sizeof(srvloc_url) - strlen(inet_ntoa(dsi->server.sin_addr)) - 21)) {
         syslog(LOG_ERR, "DSIConfigInit: Hostname is too long for SRVLOC");
         goto srvloc_reg_err;
     }
-    if (dsi->server.sin_port == afpovertcp->s_port) {
+    if (dsi->server.sin_port == afp_port) {
         sprintf(srvloc_url, "afp://%s/?NAME=%s", inet_ntoa(dsi->server.sin_addr), options->hostname);
     }
     else {