Cleanups in ldconfig's chroot handling
authorUlrich Drepper <drepper@gmail.com>
Sat, 29 Oct 2011 16:43:18 +0000 (12:43 -0400)
committerUlrich Drepper <drepper@gmail.com>
Sat, 29 Oct 2011 16:43:18 +0000 (12:43 -0400)
ChangeLog
elf/chroot_canon.c

index fbef6bc..d5d7cb5 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,7 @@
 2011-10-29  Ulrich Drepper  <drepper@gmail.com>
 
+       * elf/chroot_canon.c (chroot_canon): Cleanups.
+
        * elf/dl-lookup.c (_dl_setup_hash): Avoid warning.
 
        [BZ #13335]
index b639cfa..f8f3370 100644 (file)
@@ -70,7 +70,6 @@ chroot_canon (const char *chroot, const char *name)
   for (start = end = name; *start; start = end)
     {
       struct stat64 st;
-      int n;
 
       /* Skip sequence of multiple path-separators.  */
       while (*start == '/')
@@ -135,7 +134,7 @@ chroot_canon (const char *chroot, const char *name)
                  goto error;
                }
 
-             n = readlink (rpath, buf, PATH_MAX - 1);
+             ssize_t n = readlink (rpath, buf, PATH_MAX - 1);
              if (n < 0)
                {
                  if (*end == '\0')
@@ -148,7 +147,7 @@ chroot_canon (const char *chroot, const char *name)
                extra_buf = alloca (PATH_MAX);
 
              len = strlen (end);
-             if ((long int) (n + len) >= PATH_MAX)
+             if (len >= PATH_MAX - n)
                {
                  __set_errno (ENAMETOOLONG);
                  goto error;