Add AFSCONF_NOCELLNAME error code
[openafs.git] / src / auth / cellconfig.c
index 7f7aaaf..cd65f67 100644 (file)
@@ -453,7 +453,7 @@ afsconf_Open(const char *adir)
            /* The "AFSCONF" environment (or contents of "/.AFSCONF") will be typically set to something like "/afs/<cell>/common/etc" where, by convention, the default files for "ThisCell" and "CellServDB" will reside; note that a major drawback is that a given afs client on that cell may NOT contain the same contents... */
            char *home_dir;
            afsconf_FILE *fp;
-           size_t len;
+           size_t len = 0;
            int r;
 
            if (!(home_dir = getenv("HOME"))) {
@@ -462,8 +462,6 @@ afsconf_Open(const char *adir)
                if (fp == 0)
                    goto fail;
 
-               fgets(afs_confdir, 128, fp);
-               fclose(fp);
            } else {
                char *pathname = NULL;
 
@@ -480,10 +478,10 @@ afsconf_Open(const char *adir)
                    if (fp == 0)
                        goto fail;
                }
-               fgets(afs_confdir, 128, fp);
-               fclose(fp);
            }
-           len = strlen(afs_confdir);
+           if (fgets(afs_confdir, 128, fp) != NULL)
+               len = strlen(afs_confdir);
+           fclose(fp);
            if (len == 0)
                goto fail;
 
@@ -1478,7 +1476,7 @@ afsconf_GetCellInfo(struct afsconf_dir *adir, char *acellName, char *aservice,
  *
  * @return status
  *    @retval 0 success
- *    @retval AFSCONF_UNKNOWN failed to get cellname
+ *    @retval AFSCONF_NOCELLNAME cannot determine local cell name
  *
  * @internal
  */
@@ -1511,7 +1509,7 @@ _afsconf_GetLocalCell(struct afsconf_dir *adir, char **pname, int check)
        if (adir->cellName) {
            *pname = adir->cellName;
        } else
-           code = AFSCONF_UNKNOWN;
+           code = AFSCONF_NOCELLNAME;
     }
     return code;
 }