]> git.decadent.org.uk Git - nfs-utils.git/blobdiff - utils/mountd/rmtab.c
2002-11-27 Chip Salzenberg <chip@pobox.com>
[nfs-utils.git] / utils / mountd / rmtab.c
index 0a4ed4c6b1b09269978c0462a0f67354f163b756..869b5f88fd791881eee6d01951cdfe1185222b9d 100644 (file)
 static int 
 slink_safe_rename(const char * oldpath, const char * newpath)
 {
-  int r;
-  struct stat s;
-  char slink_path[PATH_MAX];
-  char real_newpath = newpath;
-
-  if((lstat(newpath, &s) == 0) && (S_ISLNK(s.st_mode))) {
-
-    /* New path is a symbolic link, do not destroy but follow */
-
-    if((r = readlink(newpath, slink_path, PATH_MAX))==-1) {
-
-      return -1;
-
-    }
-
-    slink_path[ (r < PATH_MAX) ? (r + 1) : (PATH_MAX - 1)] = '\0';
-
-    real_newpath = slink_path;
-
-  }
-
-  return rename(oldpath, real_newpath);
+       int r;
+       struct stat s;
+       char slink_path[PATH_MAX];
+       char real_newpath = newpath;
+
+       if ((lstat(newpath, &s) == 0) && S_ISLNK(s.st_mode)) {
+               /* New path is a symbolic link, do not destroy but follow */
+               if ((r = readlink(newpath, slink_path, PATH_MAX - 1)) == -1)
+                       return -1;
+               slink_path[r] = '\0';
+               real_newpath = slink_path;
+       }
 
-}/* static int slink_safe_rename() */
+       return rename(oldpath, real_newpath);
+}
 
 void
 mountlist_add(nfs_export *exp, const char *path)