Rev 4153 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 4153 | Rev 4327 | ||
|---|---|---|---|
| Line 91... | Line 91... | ||
| 91 | char *dirs[255]; |
91 | char *dirs[255]; |
| 92 | unsigned int absolute = 0, i = 0, ret = 0; |
92 | unsigned int absolute = 0, i = 0, ret = 0; |
| 93 | 93 | ||
| 94 | /* Its a good idea to allocate path, plus we (may) need a copy of |
94 | /* Its a good idea to allocate path, plus we (may) need a copy of |
| 95 | * path to tokenize if parents are specified */ |
95 | * path to tokenize if parents are specified */ |
| 96 | if (NULL == (tmp = strdup(path))) { |
96 | if (NULL == (tmp = str_dup(path))) { |
| 97 | cli_error(CL_ENOMEM, "%s: path too big?", cmdname); |
97 | cli_error(CL_ENOMEM, "%s: path too big?", cmdname); |
| 98 | return 1; |
98 | return 1; |
| 99 | } |
99 | } |
| 100 | 100 | ||
| 101 | if (NULL == (wdp = (char *) malloc(PATH_MAX))) { |
101 | if (NULL == (wdp = (char *) malloc(PATH_MAX))) { |
| Line 147... | Line 147... | ||
| 147 | } |
147 | } |
| 148 | 148 | ||
| 149 | while (dirs[i] != NULL) { |
149 | while (dirs[i] != NULL) { |
| 150 | /* Sometimes make or scripts conjoin odd paths. Account for something |
150 | /* Sometimes make or scripts conjoin odd paths. Account for something |
| 151 | * like this: ../../foo/bar/../foo/foofoo/./bar */ |
151 | * like this: ../../foo/bar/../foo/foofoo/./bar */ |
| 152 | if (!strcmp(dirs[i], "..") || !strcmp(dirs[i], ".")) { |
152 | if (!str_cmp(dirs[i], "..") || !str_cmp(dirs[i], ".")) { |
| 153 | if (0 != (chdir(dirs[i]))) { |
153 | if (0 != (chdir(dirs[i]))) { |
| 154 | cli_error(CL_EFAIL, "%s: impossible path: %s", |
154 | cli_error(CL_EFAIL, "%s: impossible path: %s", |
| 155 | cmdname, path); |
155 | cmdname, path); |
| 156 | ret ++; |
156 | ret ++; |
| 157 | goto finit; |
157 | goto finit; |