]> granicus.if.org Git - python/commitdiff
When following symlinks to the real executable, use a loop so a
authorGuido van Rossum <guido@python.org>
Wed, 29 Apr 1998 21:07:06 +0000 (21:07 +0000)
committerGuido van Rossum <guido@python.org>
Wed, 29 Apr 1998 21:07:06 +0000 (21:07 +0000)
symlink to a symlink can work.
(Jack)

Modules/getpath.c

index 589b7aec4f6b54f05215fcb8c7e2d274dd25429e..09b795d5c5fc7d3d21198592b8ea9722e5c44001 100644 (file)
@@ -437,7 +437,7 @@ calculate_path()
        {
                char tmpbuffer[MAXPATHLEN+1];
                int linklen = readlink(progpath, tmpbuffer, MAXPATHLEN);
-               if (linklen != -1) {
+               while (linklen != -1) {
                        /* It's not null terminated! */
                        tmpbuffer[linklen] = '\0';
                        if (tmpbuffer[0] == SEP)
@@ -447,6 +447,7 @@ calculate_path()
                                reduce(argv0_path);
                                joinpath(argv0_path, tmpbuffer);
                        }
+                       linklen = readlink(argv0_path, tmpbuffer, MAXPATHLEN);
                }
        }
 #endif /* HAVE_READLINK */