Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/openssh/src/sftp.c |
Switch to Source code | Preprocessed file |
Line | Source | Count | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | - | |||||||||||||||||||||||||
2 | - | |||||||||||||||||||||||||
3 | - | |||||||||||||||||||||||||
4 | - | |||||||||||||||||||||||||
5 | - | |||||||||||||||||||||||||
6 | - | |||||||||||||||||||||||||
7 | - | |||||||||||||||||||||||||
8 | - | |||||||||||||||||||||||||
9 | - | |||||||||||||||||||||||||
10 | - | |||||||||||||||||||||||||
11 | - | |||||||||||||||||||||||||
12 | - | |||||||||||||||||||||||||
13 | - | |||||||||||||||||||||||||
14 | - | |||||||||||||||||||||||||
15 | - | |||||||||||||||||||||||||
16 | - | |||||||||||||||||||||||||
17 | - | |||||||||||||||||||||||||
18 | - | |||||||||||||||||||||||||
19 | - | |||||||||||||||||||||||||
20 | - | |||||||||||||||||||||||||
21 | - | |||||||||||||||||||||||||
22 | - | |||||||||||||||||||||||||
23 | typedef void EditLine; | - | ||||||||||||||||||||||||
24 | - | |||||||||||||||||||||||||
25 | - | |||||||||||||||||||||||||
26 | - | |||||||||||||||||||||||||
27 | - | |||||||||||||||||||||||||
28 | - | |||||||||||||||||||||||||
29 | - | |||||||||||||||||||||||||
30 | - | |||||||||||||||||||||||||
31 | - | |||||||||||||||||||||||||
32 | - | |||||||||||||||||||||||||
33 | - | |||||||||||||||||||||||||
34 | - | |||||||||||||||||||||||||
35 | - | |||||||||||||||||||||||||
36 | - | |||||||||||||||||||||||||
37 | - | |||||||||||||||||||||||||
38 | - | |||||||||||||||||||||||||
39 | - | |||||||||||||||||||||||||
40 | FILE* infile; | - | ||||||||||||||||||||||||
41 | - | |||||||||||||||||||||||||
42 | - | |||||||||||||||||||||||||
43 | int batchmode = 0; | - | ||||||||||||||||||||||||
44 | - | |||||||||||||||||||||||||
45 | - | |||||||||||||||||||||||||
46 | static volatile pid_t sshpid = -1; | - | ||||||||||||||||||||||||
47 | - | |||||||||||||||||||||||||
48 | - | |||||||||||||||||||||||||
49 | int quiet = 0; | - | ||||||||||||||||||||||||
50 | - | |||||||||||||||||||||||||
51 | - | |||||||||||||||||||||||||
52 | int showprogress = 1; | - | ||||||||||||||||||||||||
53 | - | |||||||||||||||||||||||||
54 | - | |||||||||||||||||||||||||
55 | int global_rflag = 0; | - | ||||||||||||||||||||||||
56 | - | |||||||||||||||||||||||||
57 | - | |||||||||||||||||||||||||
58 | int global_aflag = 0; | - | ||||||||||||||||||||||||
59 | - | |||||||||||||||||||||||||
60 | - | |||||||||||||||||||||||||
61 | int global_pflag = 0; | - | ||||||||||||||||||||||||
62 | - | |||||||||||||||||||||||||
63 | - | |||||||||||||||||||||||||
64 | int global_fflag = 0; | - | ||||||||||||||||||||||||
65 | - | |||||||||||||||||||||||||
66 | - | |||||||||||||||||||||||||
67 | volatile sig_atomic_t interrupted = 0; | - | ||||||||||||||||||||||||
68 | - | |||||||||||||||||||||||||
69 | - | |||||||||||||||||||||||||
70 | int sort_flag; | - | ||||||||||||||||||||||||
71 | _ssh_compat_glob_t *sort_glob; | - | ||||||||||||||||||||||||
72 | - | |||||||||||||||||||||||||
73 | - | |||||||||||||||||||||||||
74 | struct complete_ctx { | - | ||||||||||||||||||||||||
75 | struct sftp_conn *conn; | - | ||||||||||||||||||||||||
76 | char **remote_pathp; | - | ||||||||||||||||||||||||
77 | }; | - | ||||||||||||||||||||||||
78 | - | |||||||||||||||||||||||||
79 | int remote_glob(struct sftp_conn *, const char *, int, | - | ||||||||||||||||||||||||
80 | int (*)(const char *, int), _ssh_compat_glob_t *); | - | ||||||||||||||||||||||||
81 | - | |||||||||||||||||||||||||
82 | extern char *__progname; | - | ||||||||||||||||||||||||
83 | enum sftp_command { | - | ||||||||||||||||||||||||
84 | I_CHDIR = 1, | - | ||||||||||||||||||||||||
85 | I_CHGRP, | - | ||||||||||||||||||||||||
86 | I_CHMOD, | - | ||||||||||||||||||||||||
87 | I_CHOWN, | - | ||||||||||||||||||||||||
88 | I_DF, | - | ||||||||||||||||||||||||
89 | I_GET, | - | ||||||||||||||||||||||||
90 | I_HELP, | - | ||||||||||||||||||||||||
91 | I_LCHDIR, | - | ||||||||||||||||||||||||
92 | I_LINK, | - | ||||||||||||||||||||||||
93 | I_LLS, | - | ||||||||||||||||||||||||
94 | I_LMKDIR, | - | ||||||||||||||||||||||||
95 | I_LPWD, | - | ||||||||||||||||||||||||
96 | I_LS, | - | ||||||||||||||||||||||||
97 | I_LUMASK, | - | ||||||||||||||||||||||||
98 | I_MKDIR, | - | ||||||||||||||||||||||||
99 | I_PUT, | - | ||||||||||||||||||||||||
100 | I_PWD, | - | ||||||||||||||||||||||||
101 | I_QUIT, | - | ||||||||||||||||||||||||
102 | I_REGET, | - | ||||||||||||||||||||||||
103 | I_RENAME, | - | ||||||||||||||||||||||||
104 | I_REPUT, | - | ||||||||||||||||||||||||
105 | I_RM, | - | ||||||||||||||||||||||||
106 | I_RMDIR, | - | ||||||||||||||||||||||||
107 | I_SHELL, | - | ||||||||||||||||||||||||
108 | I_SYMLINK, | - | ||||||||||||||||||||||||
109 | I_VERSION, | - | ||||||||||||||||||||||||
110 | I_PROGRESS, | - | ||||||||||||||||||||||||
111 | }; | - | ||||||||||||||||||||||||
112 | - | |||||||||||||||||||||||||
113 | struct CMD { | - | ||||||||||||||||||||||||
114 | const char *c; | - | ||||||||||||||||||||||||
115 | const int n; | - | ||||||||||||||||||||||||
116 | const int t; | - | ||||||||||||||||||||||||
117 | }; | - | ||||||||||||||||||||||||
118 | - | |||||||||||||||||||||||||
119 | - | |||||||||||||||||||||||||
120 | - | |||||||||||||||||||||||||
121 | - | |||||||||||||||||||||||||
122 | - | |||||||||||||||||||||||||
123 | - | |||||||||||||||||||||||||
124 | static const struct CMD cmds[] = { | - | ||||||||||||||||||||||||
125 | { "bye", I_QUIT, 0 }, | - | ||||||||||||||||||||||||
126 | { "cd", I_CHDIR, 1 }, | - | ||||||||||||||||||||||||
127 | { "chdir", I_CHDIR, 1 }, | - | ||||||||||||||||||||||||
128 | { "chgrp", I_CHGRP, 1 }, | - | ||||||||||||||||||||||||
129 | { "chmod", I_CHMOD, 1 }, | - | ||||||||||||||||||||||||
130 | { "chown", I_CHOWN, 1 }, | - | ||||||||||||||||||||||||
131 | { "df", I_DF, 1 }, | - | ||||||||||||||||||||||||
132 | { "dir", I_LS, 1 }, | - | ||||||||||||||||||||||||
133 | { "exit", I_QUIT, 0 }, | - | ||||||||||||||||||||||||
134 | { "get", I_GET, 1 }, | - | ||||||||||||||||||||||||
135 | { "help", I_HELP, 0 }, | - | ||||||||||||||||||||||||
136 | { "lcd", I_LCHDIR, 2 }, | - | ||||||||||||||||||||||||
137 | { "lchdir", I_LCHDIR, 2 }, | - | ||||||||||||||||||||||||
138 | { "lls", I_LLS, 2 }, | - | ||||||||||||||||||||||||
139 | { "lmkdir", I_LMKDIR, 2 }, | - | ||||||||||||||||||||||||
140 | { "ln", I_LINK, 1 }, | - | ||||||||||||||||||||||||
141 | { "lpwd", I_LPWD, 2 }, | - | ||||||||||||||||||||||||
142 | { "ls", I_LS, 1 }, | - | ||||||||||||||||||||||||
143 | { "lumask", I_LUMASK, 0 }, | - | ||||||||||||||||||||||||
144 | { "mkdir", I_MKDIR, 1 }, | - | ||||||||||||||||||||||||
145 | { "mget", I_GET, 1 }, | - | ||||||||||||||||||||||||
146 | { "mput", I_PUT, 2 }, | - | ||||||||||||||||||||||||
147 | { "progress", I_PROGRESS, 0 }, | - | ||||||||||||||||||||||||
148 | { "put", I_PUT, 2 }, | - | ||||||||||||||||||||||||
149 | { "pwd", I_PWD, 1 }, | - | ||||||||||||||||||||||||
150 | { "quit", I_QUIT, 0 }, | - | ||||||||||||||||||||||||
151 | { "reget", I_REGET, 1 }, | - | ||||||||||||||||||||||||
152 | { "rename", I_RENAME, 1 }, | - | ||||||||||||||||||||||||
153 | { "reput", I_REPUT, 2 }, | - | ||||||||||||||||||||||||
154 | { "rm", I_RM, 1 }, | - | ||||||||||||||||||||||||
155 | { "rmdir", I_RMDIR, 1 }, | - | ||||||||||||||||||||||||
156 | { "symlink", I_SYMLINK, 1 }, | - | ||||||||||||||||||||||||
157 | { "version", I_VERSION, 0 }, | - | ||||||||||||||||||||||||
158 | { "!", I_SHELL, 0 }, | - | ||||||||||||||||||||||||
159 | { "?", I_HELP, 0 }, | - | ||||||||||||||||||||||||
160 | { | - | ||||||||||||||||||||||||
161 | ((void *)0) | - | ||||||||||||||||||||||||
162 | , -1, -1 } | - | ||||||||||||||||||||||||
163 | }; | - | ||||||||||||||||||||||||
164 | - | |||||||||||||||||||||||||
165 | - | |||||||||||||||||||||||||
166 | static void | - | ||||||||||||||||||||||||
167 | killchild(int signo) | - | ||||||||||||||||||||||||
168 | { | - | ||||||||||||||||||||||||
169 | if (sshpid > 1
| 0 | ||||||||||||||||||||||||
170 | kill(sshpid, | - | ||||||||||||||||||||||||
171 | 15 | - | ||||||||||||||||||||||||
172 | ); | - | ||||||||||||||||||||||||
173 | waitpid(sshpid, | - | ||||||||||||||||||||||||
174 | ((void *)0) | - | ||||||||||||||||||||||||
175 | , 0); | - | ||||||||||||||||||||||||
176 | } never executed: end of block | 0 | ||||||||||||||||||||||||
177 | - | |||||||||||||||||||||||||
178 | _exit(1); | - | ||||||||||||||||||||||||
179 | } never executed: end of block | 0 | ||||||||||||||||||||||||
180 | - | |||||||||||||||||||||||||
181 | - | |||||||||||||||||||||||||
182 | static void | - | ||||||||||||||||||||||||
183 | suspchild(int signo) | - | ||||||||||||||||||||||||
184 | { | - | ||||||||||||||||||||||||
185 | if (sshpid > 1
| 0 | ||||||||||||||||||||||||
186 | kill(sshpid, signo); | - | ||||||||||||||||||||||||
187 | while (waitpid(sshpid,
| 0 | ||||||||||||||||||||||||
188 | ((void *)0)
| 0 | ||||||||||||||||||||||||
189 | ,
| 0 | ||||||||||||||||||||||||
190 | 2
| 0 | ||||||||||||||||||||||||
191 | ) == -1
| 0 | ||||||||||||||||||||||||
192 | (*
| 0 | ||||||||||||||||||||||||
193 | ==
| 0 | ||||||||||||||||||||||||
194 | 4
| 0 | ||||||||||||||||||||||||
195 | ) | - | ||||||||||||||||||||||||
196 | continue; never executed: continue; | 0 | ||||||||||||||||||||||||
197 | } never executed: end of block | 0 | ||||||||||||||||||||||||
198 | kill(getpid(), | - | ||||||||||||||||||||||||
199 | 19 | - | ||||||||||||||||||||||||
200 | ); | - | ||||||||||||||||||||||||
201 | } never executed: end of block | 0 | ||||||||||||||||||||||||
202 | - | |||||||||||||||||||||||||
203 | - | |||||||||||||||||||||||||
204 | static void | - | ||||||||||||||||||||||||
205 | cmd_interrupt(int signo) | - | ||||||||||||||||||||||||
206 | { | - | ||||||||||||||||||||||||
207 | const char msg[] = "\rInterrupt \n"; | - | ||||||||||||||||||||||||
208 | int olderrno = | - | ||||||||||||||||||||||||
209 | (*__errno_location ()) | - | ||||||||||||||||||||||||
210 | ; | - | ||||||||||||||||||||||||
211 | - | |||||||||||||||||||||||||
212 | (void)write( | - | ||||||||||||||||||||||||
213 | 2 | - | ||||||||||||||||||||||||
214 | , msg, sizeof(msg) - 1); | - | ||||||||||||||||||||||||
215 | interrupted = 1; | - | ||||||||||||||||||||||||
216 | - | |||||||||||||||||||||||||
217 | (*__errno_location ()) | - | ||||||||||||||||||||||||
218 | = olderrno; | - | ||||||||||||||||||||||||
219 | } never executed: end of block | 0 | ||||||||||||||||||||||||
220 | - | |||||||||||||||||||||||||
221 | - | |||||||||||||||||||||||||
222 | static void | - | ||||||||||||||||||||||||
223 | sigchld_handler(int sig) | - | ||||||||||||||||||||||||
224 | { | - | ||||||||||||||||||||||||
225 | int save_errno = | - | ||||||||||||||||||||||||
226 | (*__errno_location ()) | - | ||||||||||||||||||||||||
227 | ; | - | ||||||||||||||||||||||||
228 | pid_t pid; | - | ||||||||||||||||||||||||
229 | const char msg[] = "\rConnection closed. \n"; | - | ||||||||||||||||||||||||
230 | - | |||||||||||||||||||||||||
231 | - | |||||||||||||||||||||||||
232 | while ((
| 0 | ||||||||||||||||||||||||
233 | ((void *)0)
| 0 | ||||||||||||||||||||||||
234 | ,
| 0 | ||||||||||||||||||||||||
235 | 1
| 0 | ||||||||||||||||||||||||
236 | )) == -1
| 0 | ||||||||||||||||||||||||
237 | (*
| 0 | ||||||||||||||||||||||||
238 | ==
| 0 | ||||||||||||||||||||||||
239 | 4
| 0 | ||||||||||||||||||||||||
240 | ) | - | ||||||||||||||||||||||||
241 | continue; never executed: continue; | 0 | ||||||||||||||||||||||||
242 | if (pid == sshpid
| 0 | ||||||||||||||||||||||||
243 | (void)write( | - | ||||||||||||||||||||||||
244 | 2 | - | ||||||||||||||||||||||||
245 | , msg, sizeof(msg) - 1); | - | ||||||||||||||||||||||||
246 | sshpid = -1; | - | ||||||||||||||||||||||||
247 | } never executed: end of block | 0 | ||||||||||||||||||||||||
248 | - | |||||||||||||||||||||||||
249 | - | |||||||||||||||||||||||||
250 | (*__errno_location ()) | - | ||||||||||||||||||||||||
251 | = save_errno; | - | ||||||||||||||||||||||||
252 | } never executed: end of block | 0 | ||||||||||||||||||||||||
253 | - | |||||||||||||||||||||||||
254 | static void | - | ||||||||||||||||||||||||
255 | help(void) | - | ||||||||||||||||||||||||
256 | { | - | ||||||||||||||||||||||||
257 | printf("Available commands:\n" | - | ||||||||||||||||||||||||
258 | "bye Quit sftp\n" | - | ||||||||||||||||||||||||
259 | "cd path Change remote directory to 'path'\n" | - | ||||||||||||||||||||||||
260 | "chgrp grp path Change group of file 'path' to 'grp'\n" | - | ||||||||||||||||||||||||
261 | "chmod mode path Change permissions of file 'path' to 'mode'\n" | - | ||||||||||||||||||||||||
262 | "chown own path Change owner of file 'path' to 'own'\n" | - | ||||||||||||||||||||||||
263 | "df [-hi] [path] Display statistics for current directory or\n" | - | ||||||||||||||||||||||||
264 | " filesystem containing 'path'\n" | - | ||||||||||||||||||||||||
265 | "exit Quit sftp\n" | - | ||||||||||||||||||||||||
266 | "get [-afPpRr] remote [local] Download file\n" | - | ||||||||||||||||||||||||
267 | "reget [-fPpRr] remote [local] Resume download file\n" | - | ||||||||||||||||||||||||
268 | "reput [-fPpRr] [local] remote Resume upload file\n" | - | ||||||||||||||||||||||||
269 | "help Display this help text\n" | - | ||||||||||||||||||||||||
270 | "lcd path Change local directory to 'path'\n" | - | ||||||||||||||||||||||||
271 | "lls [ls-options [path]] Display local directory listing\n" | - | ||||||||||||||||||||||||
272 | "lmkdir path Create local directory\n" | - | ||||||||||||||||||||||||
273 | "ln [-s] oldpath newpath Link remote file (-s for symlink)\n" | - | ||||||||||||||||||||||||
274 | "lpwd Print local working directory\n" | - | ||||||||||||||||||||||||
275 | "ls [-1afhlnrSt] [path] Display remote directory listing\n" | - | ||||||||||||||||||||||||
276 | "lumask umask Set local umask to 'umask'\n" | - | ||||||||||||||||||||||||
277 | "mkdir path Create remote directory\n" | - | ||||||||||||||||||||||||
278 | "progress Toggle display of progress meter\n" | - | ||||||||||||||||||||||||
279 | "put [-afPpRr] local [remote] Upload file\n" | - | ||||||||||||||||||||||||
280 | "pwd Display remote working directory\n" | - | ||||||||||||||||||||||||
281 | "quit Quit sftp\n" | - | ||||||||||||||||||||||||
282 | "rename oldpath newpath Rename remote file\n" | - | ||||||||||||||||||||||||
283 | "rm path Delete remote file\n" | - | ||||||||||||||||||||||||
284 | "rmdir path Remove remote directory\n" | - | ||||||||||||||||||||||||
285 | "symlink oldpath newpath Symlink remote file\n" | - | ||||||||||||||||||||||||
286 | "version Show SFTP version\n" | - | ||||||||||||||||||||||||
287 | "!command Execute 'command' in local shell\n" | - | ||||||||||||||||||||||||
288 | "! Escape to local shell\n" | - | ||||||||||||||||||||||||
289 | "? Synonym for help\n"); | - | ||||||||||||||||||||||||
290 | } never executed: end of block | 0 | ||||||||||||||||||||||||
291 | - | |||||||||||||||||||||||||
292 | static void | - | ||||||||||||||||||||||||
293 | local_do_shell(const char *args) | - | ||||||||||||||||||||||||
294 | { | - | ||||||||||||||||||||||||
295 | int status; | - | ||||||||||||||||||||||||
296 | char *shell; | - | ||||||||||||||||||||||||
297 | pid_t pid; | - | ||||||||||||||||||||||||
298 | - | |||||||||||||||||||||||||
299 | if (!*args
| 0 | ||||||||||||||||||||||||
300 | args = never executed: args = ((void *)0) ; | 0 | ||||||||||||||||||||||||
301 | ((void *)0) never executed: args = ((void *)0) ; | 0 | ||||||||||||||||||||||||
302 | ; never executed: args = ((void *)0) ; | 0 | ||||||||||||||||||||||||
303 | - | |||||||||||||||||||||||||
304 | if ((
| 0 | ||||||||||||||||||||||||
305 | ((void *)0)
| 0 | ||||||||||||||||||||||||
306 | || *
| 0 | ||||||||||||||||||||||||
307 | shell = never executed: shell = "/bin/sh" ; | 0 | ||||||||||||||||||||||||
308 | "/bin/sh" never executed: shell = "/bin/sh" ; | 0 | ||||||||||||||||||||||||
309 | ; never executed: shell = "/bin/sh" ; | 0 | ||||||||||||||||||||||||
310 | - | |||||||||||||||||||||||||
311 | if ((
| 0 | ||||||||||||||||||||||||
312 | fatal("Couldn't fork: %s", strerror( never executed: fatal("Couldn't fork: %s", strerror( (*__errno_location ()) )); | 0 | ||||||||||||||||||||||||
313 | (*__errno_location ()) never executed: fatal("Couldn't fork: %s", strerror( (*__errno_location ()) )); | 0 | ||||||||||||||||||||||||
314 | )); never executed: fatal("Couldn't fork: %s", strerror( (*__errno_location ()) )); | 0 | ||||||||||||||||||||||||
315 | - | |||||||||||||||||||||||||
316 | if (pid == 0
| 0 | ||||||||||||||||||||||||
317 | - | |||||||||||||||||||||||||
318 | if (args
| 0 | ||||||||||||||||||||||||
319 | debug3("Executing %s -c \"%s\"", shell, args); | - | ||||||||||||||||||||||||
320 | execl(shell, shell, "-c", args, (char *) | - | ||||||||||||||||||||||||
321 | ((void *)0) | - | ||||||||||||||||||||||||
322 | ); | - | ||||||||||||||||||||||||
323 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||
324 | debug3("Executing %s", shell); | - | ||||||||||||||||||||||||
325 | execl(shell, shell, (char *) | - | ||||||||||||||||||||||||
326 | ((void *)0) | - | ||||||||||||||||||||||||
327 | ); | - | ||||||||||||||||||||||||
328 | } never executed: end of block | 0 | ||||||||||||||||||||||||
329 | fprintf( | - | ||||||||||||||||||||||||
330 | stderr | - | ||||||||||||||||||||||||
331 | , "Couldn't execute \"%s\": %s\n", shell, | - | ||||||||||||||||||||||||
332 | strerror( | - | ||||||||||||||||||||||||
333 | (*__errno_location ()) | - | ||||||||||||||||||||||||
334 | )); | - | ||||||||||||||||||||||||
335 | _exit(1); | - | ||||||||||||||||||||||||
336 | } never executed: end of block | 0 | ||||||||||||||||||||||||
337 | while (waitpid(pid, &status, 0) == -1
| 0 | ||||||||||||||||||||||||
338 | if ( | - | ||||||||||||||||||||||||
339 | (*
| 0 | ||||||||||||||||||||||||
340 | !=
| 0 | ||||||||||||||||||||||||
341 | 4
| 0 | ||||||||||||||||||||||||
342 | ) | - | ||||||||||||||||||||||||
343 | fatal("Couldn't wait for child: %s", strerror( never executed: fatal("Couldn't wait for child: %s", strerror( (*__errno_location ()) )); | 0 | ||||||||||||||||||||||||
344 | (*__errno_location ()) never executed: fatal("Couldn't wait for child: %s", strerror( (*__errno_location ()) )); | 0 | ||||||||||||||||||||||||
345 | )); never executed: fatal("Couldn't wait for child: %s", strerror( (*__errno_location ()) )); | 0 | ||||||||||||||||||||||||
346 | if (!
| 0 | ||||||||||||||||||||||||
347 | (((
| 0 | ||||||||||||||||||||||||
348 | status
| 0 | ||||||||||||||||||||||||
349 | ) & 0x7f) == 0)
| 0 | ||||||||||||||||||||||||
350 | ) | - | ||||||||||||||||||||||||
351 | error("Shell exited abnormally"); never executed: error("Shell exited abnormally"); | 0 | ||||||||||||||||||||||||
352 | else if ( | - | ||||||||||||||||||||||||
353 | (((
| 0 | ||||||||||||||||||||||||
354 | status
| 0 | ||||||||||||||||||||||||
355 | ) & 0xff00) >> 8)
| 0 | ||||||||||||||||||||||||
356 | ) | - | ||||||||||||||||||||||||
357 | error("Shell exited with status %d", never executed: error("Shell exited with status %d", ((( status ) & 0xff00) >> 8) ); | 0 | ||||||||||||||||||||||||
358 | ((( never executed: error("Shell exited with status %d", ((( status ) & 0xff00) >> 8) ); | 0 | ||||||||||||||||||||||||
359 | status never executed: error("Shell exited with status %d", ((( status ) & 0xff00) >> 8) ); | 0 | ||||||||||||||||||||||||
360 | ) & 0xff00) >> 8) never executed: error("Shell exited with status %d", ((( status ) & 0xff00) >> 8) ); | 0 | ||||||||||||||||||||||||
361 | ); never executed: error("Shell exited with status %d", ((( status ) & 0xff00) >> 8) ); | 0 | ||||||||||||||||||||||||
362 | } never executed: end of block | 0 | ||||||||||||||||||||||||
363 | - | |||||||||||||||||||||||||
364 | static void | - | ||||||||||||||||||||||||
365 | local_do_ls(const char *args) | - | ||||||||||||||||||||||||
366 | { | - | ||||||||||||||||||||||||
367 | if (!args
| 0 | ||||||||||||||||||||||||
368 | local_do_shell("ls"); never executed: local_do_shell("ls"); | 0 | ||||||||||||||||||||||||
369 | else { | - | ||||||||||||||||||||||||
370 | int len = strlen("ls" " ") + strlen(args) + 1; | - | ||||||||||||||||||||||||
371 | char *buf = xmalloc(len); | - | ||||||||||||||||||||||||
372 | - | |||||||||||||||||||||||||
373 | - | |||||||||||||||||||||||||
374 | snprintf(buf, len, "ls" " %s", args); | - | ||||||||||||||||||||||||
375 | local_do_shell(buf); | - | ||||||||||||||||||||||||
376 | free(buf); | - | ||||||||||||||||||||||||
377 | } never executed: end of block | 0 | ||||||||||||||||||||||||
378 | } | - | ||||||||||||||||||||||||
379 | - | |||||||||||||||||||||||||
380 | - | |||||||||||||||||||||||||
381 | static char * | - | ||||||||||||||||||||||||
382 | path_strip(const char *path, const char *strip) | - | ||||||||||||||||||||||||
383 | { | - | ||||||||||||||||||||||||
384 | size_t len; | - | ||||||||||||||||||||||||
385 | - | |||||||||||||||||||||||||
386 | if (strip ==
| 0 | ||||||||||||||||||||||||
387 | ((void *)0)
| 0 | ||||||||||||||||||||||||
388 | ) | - | ||||||||||||||||||||||||
389 | return never executed: (xstrdup(path));return (xstrdup(path)); never executed: return (xstrdup(path)); | 0 | ||||||||||||||||||||||||
390 | - | |||||||||||||||||||||||||
391 | len = strlen(strip); | - | ||||||||||||||||||||||||
392 | if ( | - | ||||||||||||||||||||||||
393 | (
| 0 | ||||||||||||||||||||||||
394 | len
| 0 | ||||||||||||||||||||||||
395 | )
| 0 | ||||||||||||||||||||||||
396 | path
| 0 | ||||||||||||||||||||||||
397 | )
| 0 | ||||||||||||||||||||||||
398 | path
| 0 | ||||||||||||||||||||||||
399 | ) < ((size_t) (
| 0 | ||||||||||||||||||||||||
400 | len
| 0 | ||||||||||||||||||||||||
401 | ))
| 0 | ||||||||||||||||||||||||
402 | strip
| 0 | ||||||||||||||||||||||||
403 | )
| 0 | ||||||||||||||||||||||||
404 | strip
| 0 | ||||||||||||||||||||||||
405 | ) < ((size_t) (
| 0 | ||||||||||||||||||||||||
406 | len
| 0 | ||||||||||||||||||||||||
407 | ))
| 0 | ||||||||||||||||||||||||
408 | path
| 0 | ||||||||||||||||||||||||
409 | ) && __builtin_constant_p (
| 0 | ||||||||||||||||||||||||
410 | strip
| 0 | ||||||||||||||||||||||||
411 | ) && (__s1_len = __builtin_strlen (
| 0 | ||||||||||||||||||||||||
412 | path
| 0 | ||||||||||||||||||||||||
413 | ), __s2_len = __builtin_strlen (
| 0 | ||||||||||||||||||||||||
414 | strip
| 0 | ||||||||||||||||||||||||
415 | ), (!((size_t)(const void *)((
| 0 | ||||||||||||||||||||||||
416 | path
| 0 | ||||||||||||||||||||||||
417 | ) + 1) - (size_t)(const void *)(
| 0 | ||||||||||||||||||||||||
418 | path
| 0 | ||||||||||||||||||||||||
419 | ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((
| 0 | ||||||||||||||||||||||||
420 | strip
| 0 | ||||||||||||||||||||||||
421 | ) + 1) - (size_t)(const void *)(
| 0 | ||||||||||||||||||||||||
422 | strip
| 0 | ||||||||||||||||||||||||
423 | ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (
| 0 | ||||||||||||||||||||||||
424 | path
| 0 | ||||||||||||||||||||||||
425 | ,
| 0 | ||||||||||||||||||||||||
426 | strip
| 0 | ||||||||||||||||||||||||
427 | ) : (__builtin_constant_p (
| 0 | ||||||||||||||||||||||||
428 | path
| 0 | ||||||||||||||||||||||||
429 | ) && ((size_t)(const void *)((
| 0 | ||||||||||||||||||||||||
430 | path
| 0 | ||||||||||||||||||||||||
431 | ) + 1) - (size_t)(const void *)(
| 0 | ||||||||||||||||||||||||
432 | path
| 0 | ||||||||||||||||||||||||
433 | ) == 1) && (__s1_len = __builtin_strlen (
| 0 | ||||||||||||||||||||||||
434 | path
| 0 | ||||||||||||||||||||||||
435 | ), __s1_len < 4) ? (__builtin_constant_p (
| 0 | ||||||||||||||||||||||||
436 | strip
| 0 | ||||||||||||||||||||||||
437 | ) && ((size_t)(const void *)((
| 0 | ||||||||||||||||||||||||
438 | strip
| 0 | ||||||||||||||||||||||||
439 | ) + 1) - (size_t)(const void *)(
| 0 | ||||||||||||||||||||||||
440 | strip
| 0 | ||||||||||||||||||||||||
441 | ) == 1) ? __builtin_strcmp (
| 0 | ||||||||||||||||||||||||
442 | path
| 0 | ||||||||||||||||||||||||
443 | ,
| 0 | ||||||||||||||||||||||||
444 | strip
| 0 | ||||||||||||||||||||||||
445 | ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
| 0 | ||||||||||||||||||||||||
446 | strip
| 0 | ||||||||||||||||||||||||
447 | ); int __result = (((const unsigned char *) (const char *) (
| 0 | ||||||||||||||||||||||||
448 | path
| 0 | ||||||||||||||||||||||||
449 | ))[0] - __s2[0]); if (__s1_len > 0
| 0 | ||||||||||||||||||||||||
450 | path
| 0 | ||||||||||||||||||||||||
451 | ))[1] - __s2[1]); if (__s1_len > 1
| 0 | ||||||||||||||||||||||||
452 | path
| 0 | ||||||||||||||||||||||||
453 | ))[2] - __s2[2]); if (__s1_len > 2
never executed: __result = (((const unsigned char *) (const char *) ( path ))[3] - __s2[3]); | 0 | ||||||||||||||||||||||||
454 | path
never executed: __result = (((const unsigned char *) (const char *) ( path ))[3] - __s2[3]); | 0 | ||||||||||||||||||||||||
455 | ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (
| 0 | ||||||||||||||||||||||||
456 | strip
| 0 | ||||||||||||||||||||||||
457 | ) && ((size_t)(const void *)((
| 0 | ||||||||||||||||||||||||
458 | strip
| 0 | ||||||||||||||||||||||||
459 | ) + 1) - (size_t)(const void *)(
| 0 | ||||||||||||||||||||||||
460 | strip
| 0 | ||||||||||||||||||||||||
461 | ) == 1) && (__s2_len = __builtin_strlen (
| 0 | ||||||||||||||||||||||||
462 | strip
| 0 | ||||||||||||||||||||||||
463 | ), __s2_len < 4) ? (__builtin_constant_p (
| 0 | ||||||||||||||||||||||||
464 | path
| 0 | ||||||||||||||||||||||||
465 | ) && ((size_t)(const void *)((
| 0 | ||||||||||||||||||||||||
466 | path
| 0 | ||||||||||||||||||||||||
467 | ) + 1) - (size_t)(const void *)(
| 0 | ||||||||||||||||||||||||
468 | path
| 0 | ||||||||||||||||||||||||
469 | ) == 1) ? __builtin_strcmp (
| 0 | ||||||||||||||||||||||||
470 | path
| 0 | ||||||||||||||||||||||||
471 | ,
| 0 | ||||||||||||||||||||||||
472 | strip
| 0 | ||||||||||||||||||||||||
473 | ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
| 0 | ||||||||||||||||||||||||
474 | path
| 0 | ||||||||||||||||||||||||
475 | ); int __result = (((const unsigned char *) (const char *) (
| 0 | ||||||||||||||||||||||||
476 | strip
| 0 | ||||||||||||||||||||||||
477 | ))[0] - __s2[0]); if (__s2_len > 0
| 0 | ||||||||||||||||||||||||
478 | strip
| 0 | ||||||||||||||||||||||||
479 | ))[1] - __s2[1]); if (__s2_len > 1
| 0 | ||||||||||||||||||||||||
480 | strip
| 0 | ||||||||||||||||||||||||
481 | ))[2] - __s2[2]); if (__s2_len > 2
never executed: __result = (((const unsigned char *) (const char *) ( strip ))[3] - __s2[3]); | 0 | ||||||||||||||||||||||||
482 | strip
never executed: __result = (((const unsigned char *) (const char *) ( strip ))[3] - __s2[3]); | 0 | ||||||||||||||||||||||||
483 | ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (
| 0 | ||||||||||||||||||||||||
484 | path
| 0 | ||||||||||||||||||||||||
485 | ,
| 0 | ||||||||||||||||||||||||
486 | strip
| 0 | ||||||||||||||||||||||||
487 | )))); }) : strncmp (
| 0 | ||||||||||||||||||||||||
488 | path
| 0 | ||||||||||||||||||||||||
489 | ,
| 0 | ||||||||||||||||||||||||
490 | strip
| 0 | ||||||||||||||||||||||||
491 | ,
| 0 | ||||||||||||||||||||||||
492 | len
| 0 | ||||||||||||||||||||||||
493 | )))
| 0 | ||||||||||||||||||||||||
494 | == 0
| 0 | ||||||||||||||||||||||||
495 | if (strip[len - 1] != '/'
| 0 | ||||||||||||||||||||||||
496 | len++; never executed: len++; | 0 | ||||||||||||||||||||||||
497 | return never executed: (xstrdup(path + len));return (xstrdup(path + len)); never executed: return (xstrdup(path + len)); | 0 | ||||||||||||||||||||||||
498 | } | - | ||||||||||||||||||||||||
499 | - | |||||||||||||||||||||||||
500 | return never executed: (xstrdup(path));return (xstrdup(path)); never executed: return (xstrdup(path)); | 0 | ||||||||||||||||||||||||
501 | } | - | ||||||||||||||||||||||||
502 | - | |||||||||||||||||||||||||
503 | static char * | - | ||||||||||||||||||||||||
504 | make_absolute(char *p, const char *pwd) | - | ||||||||||||||||||||||||
505 | { | - | ||||||||||||||||||||||||
506 | char *abs_str; | - | ||||||||||||||||||||||||
507 | - | |||||||||||||||||||||||||
508 | - | |||||||||||||||||||||||||
509 | if (p
| 0 | ||||||||||||||||||||||||
510 | abs_str = path_append(pwd, p); | - | ||||||||||||||||||||||||
511 | free(p); | - | ||||||||||||||||||||||||
512 | return never executed: (abs_str);return(abs_str); never executed: return(abs_str); | 0 | ||||||||||||||||||||||||
513 | } else | - | ||||||||||||||||||||||||
514 | return never executed: (p);return(p); never executed: return(p); | 0 | ||||||||||||||||||||||||
515 | } | - | ||||||||||||||||||||||||
516 | - | |||||||||||||||||||||||||
517 | static int | - | ||||||||||||||||||||||||
518 | parse_getput_flags(const char *cmd, char **argv, int argc, | - | ||||||||||||||||||||||||
519 | int *aflag, int *fflag, int *pflag, int *rflag) | - | ||||||||||||||||||||||||
520 | { | - | ||||||||||||||||||||||||
521 | extern int BSDopterr, BSDoptind, BSDoptopt, BSDoptreset; | - | ||||||||||||||||||||||||
522 | int ch; | - | ||||||||||||||||||||||||
523 | - | |||||||||||||||||||||||||
524 | BSDoptind = BSDoptreset = 1; | - | ||||||||||||||||||||||||
525 | BSDopterr = 0; | - | ||||||||||||||||||||||||
526 | - | |||||||||||||||||||||||||
527 | *aflag = *fflag = *rflag = *pflag = 0; | - | ||||||||||||||||||||||||
528 | while ((
| 0 | ||||||||||||||||||||||||
529 | switch (ch) { | - | ||||||||||||||||||||||||
530 | case never executed: 'a':case 'a': never executed: case 'a': | 0 | ||||||||||||||||||||||||
531 | *aflag = 1; | - | ||||||||||||||||||||||||
532 | break; never executed: break; | 0 | ||||||||||||||||||||||||
533 | case never executed: 'f':case 'f': never executed: case 'f': | 0 | ||||||||||||||||||||||||
534 | *fflag = 1; | - | ||||||||||||||||||||||||
535 | break; never executed: break; | 0 | ||||||||||||||||||||||||
536 | case never executed: 'p':case 'p': never executed: case 'p': | 0 | ||||||||||||||||||||||||
537 | case never executed: 'P':case 'P': never executed: case 'P': | 0 | ||||||||||||||||||||||||
538 | *pflag = 1; | - | ||||||||||||||||||||||||
539 | break; never executed: break; | 0 | ||||||||||||||||||||||||
540 | case never executed: 'r':case 'r': never executed: case 'r': | 0 | ||||||||||||||||||||||||
541 | case never executed: 'R':case 'R': never executed: case 'R': | 0 | ||||||||||||||||||||||||
542 | *rflag = 1; | - | ||||||||||||||||||||||||
543 | break; never executed: break; | 0 | ||||||||||||||||||||||||
544 | default never executed: :default: never executed: default: | 0 | ||||||||||||||||||||||||
545 | error("%s: Invalid flag -%c", cmd, BSDoptopt); | - | ||||||||||||||||||||||||
546 | return never executed: -1;return -1; never executed: return -1; | 0 | ||||||||||||||||||||||||
547 | } | - | ||||||||||||||||||||||||
548 | } | - | ||||||||||||||||||||||||
549 | - | |||||||||||||||||||||||||
550 | return never executed: BSDoptind;return BSDoptind; never executed: return BSDoptind; | 0 | ||||||||||||||||||||||||
551 | } | - | ||||||||||||||||||||||||
552 | - | |||||||||||||||||||||||||
553 | static int | - | ||||||||||||||||||||||||
554 | parse_link_flags(const char *cmd, char **argv, int argc, int *sflag) | - | ||||||||||||||||||||||||
555 | { | - | ||||||||||||||||||||||||
556 | extern int BSDopterr, BSDoptind, BSDoptopt, BSDoptreset; | - | ||||||||||||||||||||||||
557 | int ch; | - | ||||||||||||||||||||||||
558 | - | |||||||||||||||||||||||||
559 | BSDoptind = BSDoptreset = 1; | - | ||||||||||||||||||||||||
560 | BSDopterr = 0; | - | ||||||||||||||||||||||||
561 | - | |||||||||||||||||||||||||
562 | *sflag = 0; | - | ||||||||||||||||||||||||
563 | while ((
| 0 | ||||||||||||||||||||||||
564 | switch (ch) { | - | ||||||||||||||||||||||||
565 | case never executed: 's':case 's': never executed: case 's': | 0 | ||||||||||||||||||||||||
566 | *sflag = 1; | - | ||||||||||||||||||||||||
567 | break; never executed: break; | 0 | ||||||||||||||||||||||||
568 | default never executed: :default: never executed: default: | 0 | ||||||||||||||||||||||||
569 | error("%s: Invalid flag -%c", cmd, BSDoptopt); | - | ||||||||||||||||||||||||
570 | return never executed: -1;return -1; never executed: return -1; | 0 | ||||||||||||||||||||||||
571 | } | - | ||||||||||||||||||||||||
572 | } | - | ||||||||||||||||||||||||
573 | - | |||||||||||||||||||||||||
574 | return never executed: BSDoptind;return BSDoptind; never executed: return BSDoptind; | 0 | ||||||||||||||||||||||||
575 | } | - | ||||||||||||||||||||||||
576 | - | |||||||||||||||||||||||||
577 | static int | - | ||||||||||||||||||||||||
578 | parse_rename_flags(const char *cmd, char **argv, int argc, int *lflag) | - | ||||||||||||||||||||||||
579 | { | - | ||||||||||||||||||||||||
580 | extern int BSDopterr, BSDoptind, BSDoptopt, BSDoptreset; | - | ||||||||||||||||||||||||
581 | int ch; | - | ||||||||||||||||||||||||
582 | - | |||||||||||||||||||||||||
583 | BSDoptind = BSDoptreset = 1; | - | ||||||||||||||||||||||||
584 | BSDopterr = 0; | - | ||||||||||||||||||||||||
585 | - | |||||||||||||||||||||||||
586 | *lflag = 0; | - | ||||||||||||||||||||||||
587 | while ((
| 0 | ||||||||||||||||||||||||
588 | switch (ch) { | - | ||||||||||||||||||||||||
589 | case never executed: 'l':case 'l': never executed: case 'l': | 0 | ||||||||||||||||||||||||
590 | *lflag = 1; | - | ||||||||||||||||||||||||
591 | break; never executed: break; | 0 | ||||||||||||||||||||||||
592 | default never executed: :default: never executed: default: | 0 | ||||||||||||||||||||||||
593 | error("%s: Invalid flag -%c", cmd, BSDoptopt); | - | ||||||||||||||||||||||||
594 | return never executed: -1;return -1; never executed: return -1; | 0 | ||||||||||||||||||||||||
595 | } | - | ||||||||||||||||||||||||
596 | } | - | ||||||||||||||||||||||||
597 | - | |||||||||||||||||||||||||
598 | return never executed: BSDoptind;return BSDoptind; never executed: return BSDoptind; | 0 | ||||||||||||||||||||||||
599 | } | - | ||||||||||||||||||||||||
600 | - | |||||||||||||||||||||||||
601 | static int | - | ||||||||||||||||||||||||
602 | parse_ls_flags(char **argv, int argc, int *lflag) | - | ||||||||||||||||||||||||
603 | { | - | ||||||||||||||||||||||||
604 | extern int BSDopterr, BSDoptind, BSDoptopt, BSDoptreset; | - | ||||||||||||||||||||||||
605 | int ch; | - | ||||||||||||||||||||||||
606 | - | |||||||||||||||||||||||||
607 | BSDoptind = BSDoptreset = 1; | - | ||||||||||||||||||||||||
608 | BSDopterr = 0; | - | ||||||||||||||||||||||||
609 | - | |||||||||||||||||||||||||
610 | *lflag = 0x0008; | - | ||||||||||||||||||||||||
611 | while ((
| 0 | ||||||||||||||||||||||||
612 | switch (ch) { | - | ||||||||||||||||||||||||
613 | case never executed: '1':case '1': never executed: case '1': | 0 | ||||||||||||||||||||||||
614 | *lflag &= ~(0x0001|0x0002|0x0004|0x0100); | - | ||||||||||||||||||||||||
615 | *lflag |= 0x0002; | - | ||||||||||||||||||||||||
616 | break; never executed: break; | 0 | ||||||||||||||||||||||||
617 | case never executed: 'S':case 'S': never executed: case 'S': | 0 | ||||||||||||||||||||||||
618 | *lflag &= ~(0x0008|0x0010|0x0020); | - | ||||||||||||||||||||||||
619 | *lflag |= 0x0020; | - | ||||||||||||||||||||||||
620 | break; never executed: break; | 0 | ||||||||||||||||||||||||
621 | case never executed: 'a':case 'a': never executed: case 'a': | 0 | ||||||||||||||||||||||||
622 | *lflag |= 0x0080; | - | ||||||||||||||||||||||||
623 | break; never executed: break; | 0 | ||||||||||||||||||||||||
624 | case never executed: 'f':case 'f': never executed: case 'f': | 0 | ||||||||||||||||||||||||
625 | *lflag &= ~(0x0008|0x0010|0x0020); | - | ||||||||||||||||||||||||
626 | break; never executed: break; | 0 | ||||||||||||||||||||||||
627 | case never executed: 'h':case 'h': never executed: case 'h': | 0 | ||||||||||||||||||||||||
628 | *lflag |= 0x0100; | - | ||||||||||||||||||||||||
629 | break; never executed: break; | 0 | ||||||||||||||||||||||||
630 | case never executed: 'l':case 'l': never executed: case 'l': | 0 | ||||||||||||||||||||||||
631 | *lflag &= ~0x0002; | - | ||||||||||||||||||||||||
632 | *lflag |= 0x0001; | - | ||||||||||||||||||||||||
633 | break; never executed: break; | 0 | ||||||||||||||||||||||||
634 | case never executed: 'n':case 'n': never executed: case 'n': | 0 | ||||||||||||||||||||||||
635 | *lflag &= ~0x0002; | - | ||||||||||||||||||||||||
636 | *lflag |= 0x0004|0x0001; | - | ||||||||||||||||||||||||
637 | break; never executed: break; | 0 | ||||||||||||||||||||||||
638 | case never executed: 'r':case 'r': never executed: case 'r': | 0 | ||||||||||||||||||||||||
639 | *lflag |= 0x0040; | - | ||||||||||||||||||||||||
640 | break; never executed: break; | 0 | ||||||||||||||||||||||||
641 | case never executed: 't':case 't': never executed: case 't': | 0 | ||||||||||||||||||||||||
642 | *lflag &= ~(0x0008|0x0010|0x0020); | - | ||||||||||||||||||||||||
643 | *lflag |= 0x0010; | - | ||||||||||||||||||||||||
644 | break; never executed: break; | 0 | ||||||||||||||||||||||||
645 | default never executed: :default: never executed: default: | 0 | ||||||||||||||||||||||||
646 | error("ls: Invalid flag -%c", BSDoptopt); | - | ||||||||||||||||||||||||
647 | return never executed: -1;return -1; never executed: return -1; | 0 | ||||||||||||||||||||||||
648 | } | - | ||||||||||||||||||||||||
649 | } | - | ||||||||||||||||||||||||
650 | - | |||||||||||||||||||||||||
651 | return never executed: BSDoptind;return BSDoptind; never executed: return BSDoptind; | 0 | ||||||||||||||||||||||||
652 | } | - | ||||||||||||||||||||||||
653 | - | |||||||||||||||||||||||||
654 | static int | - | ||||||||||||||||||||||||
655 | parse_df_flags(const char *cmd, char **argv, int argc, int *hflag, int *iflag) | - | ||||||||||||||||||||||||
656 | { | - | ||||||||||||||||||||||||
657 | extern int BSDopterr, BSDoptind, BSDoptopt, BSDoptreset; | - | ||||||||||||||||||||||||
658 | int ch; | - | ||||||||||||||||||||||||
659 | - | |||||||||||||||||||||||||
660 | BSDoptind = BSDoptreset = 1; | - | ||||||||||||||||||||||||
661 | BSDopterr = 0; | - | ||||||||||||||||||||||||
662 | - | |||||||||||||||||||||||||
663 | *hflag = *iflag = 0; | - | ||||||||||||||||||||||||
664 | while ((
| 0 | ||||||||||||||||||||||||
665 | switch (ch) { | - | ||||||||||||||||||||||||
666 | case never executed: 'h':case 'h': never executed: case 'h': | 0 | ||||||||||||||||||||||||
667 | *hflag = 1; | - | ||||||||||||||||||||||||
668 | break; never executed: break; | 0 | ||||||||||||||||||||||||
669 | case never executed: 'i':case 'i': never executed: case 'i': | 0 | ||||||||||||||||||||||||
670 | *iflag = 1; | - | ||||||||||||||||||||||||
671 | break; never executed: break; | 0 | ||||||||||||||||||||||||
672 | default never executed: :default: never executed: default: | 0 | ||||||||||||||||||||||||
673 | error("%s: Invalid flag -%c", cmd, BSDoptopt); | - | ||||||||||||||||||||||||
674 | return never executed: -1;return -1; never executed: return -1; | 0 | ||||||||||||||||||||||||
675 | } | - | ||||||||||||||||||||||||
676 | } | - | ||||||||||||||||||||||||
677 | - | |||||||||||||||||||||||||
678 | return never executed: BSDoptind;return BSDoptind; never executed: return BSDoptind; | 0 | ||||||||||||||||||||||||
679 | } | - | ||||||||||||||||||||||||
680 | - | |||||||||||||||||||||||||
681 | static int | - | ||||||||||||||||||||||||
682 | parse_no_flags(const char *cmd, char **argv, int argc) | - | ||||||||||||||||||||||||
683 | { | - | ||||||||||||||||||||||||
684 | extern int BSDopterr, BSDoptind, BSDoptopt, BSDoptreset; | - | ||||||||||||||||||||||||
685 | int ch; | - | ||||||||||||||||||||||||
686 | - | |||||||||||||||||||||||||
687 | BSDoptind = BSDoptreset = 1; | - | ||||||||||||||||||||||||
688 | BSDopterr = 0; | - | ||||||||||||||||||||||||
689 | - | |||||||||||||||||||||||||
690 | while ((
| 0 | ||||||||||||||||||||||||
691 | switch (ch) { | - | ||||||||||||||||||||||||
692 | default never executed: :default: never executed: default: | 0 | ||||||||||||||||||||||||
693 | error("%s: Invalid flag -%c", cmd, BSDoptopt); | - | ||||||||||||||||||||||||
694 | return never executed: -1;return -1; never executed: return -1; | 0 | ||||||||||||||||||||||||
695 | } | - | ||||||||||||||||||||||||
696 | } | - | ||||||||||||||||||||||||
697 | - | |||||||||||||||||||||||||
698 | return never executed: BSDoptind;return BSDoptind; never executed: return BSDoptind; | 0 | ||||||||||||||||||||||||
699 | } | - | ||||||||||||||||||||||||
700 | - | |||||||||||||||||||||||||
701 | static int | - | ||||||||||||||||||||||||
702 | is_dir(const char *path) | - | ||||||||||||||||||||||||
703 | { | - | ||||||||||||||||||||||||
704 | struct stat sb; | - | ||||||||||||||||||||||||
705 | - | |||||||||||||||||||||||||
706 | - | |||||||||||||||||||||||||
707 | if (stat(path, &sb) == -1
| 0 | ||||||||||||||||||||||||
708 | return never executed: (0);return(0); never executed: return(0); | 0 | ||||||||||||||||||||||||
709 | - | |||||||||||||||||||||||||
710 | return never executed: (return( (((( sb.st_mode )) & 0170000) == (0040000)) ); never executed: return( (((( sb.st_mode )) & 0170000) == (0040000)) ); | 0 | ||||||||||||||||||||||||
711 | (((( never executed: return( (((( sb.st_mode )) & 0170000) == (0040000)) ); | 0 | ||||||||||||||||||||||||
712 | sb.st_mode never executed: return( (((( sb.st_mode )) & 0170000) == (0040000)) ); | 0 | ||||||||||||||||||||||||
713 | )) & 0170000) == (0040000)) never executed: return( (((( sb.st_mode )) & 0170000) == (0040000)) ); | 0 | ||||||||||||||||||||||||
714 | ); never executed: return( (((( sb.st_mode )) & 0170000) == (0040000)) ); | 0 | ||||||||||||||||||||||||
715 | } | - | ||||||||||||||||||||||||
716 | - | |||||||||||||||||||||||||
717 | static int | - | ||||||||||||||||||||||||
718 | remote_is_dir(struct sftp_conn *conn, const char *path) | - | ||||||||||||||||||||||||
719 | { | - | ||||||||||||||||||||||||
720 | Attrib *a; | - | ||||||||||||||||||||||||
721 | - | |||||||||||||||||||||||||
722 | - | |||||||||||||||||||||||||
723 | if ((
| 0 | ||||||||||||||||||||||||
724 | ((void *)0)
| 0 | ||||||||||||||||||||||||
725 | ) | - | ||||||||||||||||||||||||
726 | return never executed: (0);return(0); never executed: return(0); | 0 | ||||||||||||||||||||||||
727 | if (!(a->flags & 0x00000004)
| 0 | ||||||||||||||||||||||||
728 | return never executed: (0);return(0); never executed: return(0); | 0 | ||||||||||||||||||||||||
729 | return never executed: (return( (((( a->perm )) & 0170000) == (0040000)) ); never executed: return( (((( a->perm )) & 0170000) == (0040000)) ); | 0 | ||||||||||||||||||||||||
730 | (((( never executed: return( (((( a->perm )) & 0170000) == (0040000)) ); | 0 | ||||||||||||||||||||||||
731 | a->perm never executed: return( (((( a->perm )) & 0170000) == (0040000)) ); | 0 | ||||||||||||||||||||||||
732 | )) & 0170000) == (0040000)) never executed: return( (((( a->perm )) & 0170000) == (0040000)) ); | 0 | ||||||||||||||||||||||||
733 | ); never executed: return( (((( a->perm )) & 0170000) == (0040000)) ); | 0 | ||||||||||||||||||||||||
734 | } | - | ||||||||||||||||||||||||
735 | - | |||||||||||||||||||||||||
736 | - | |||||||||||||||||||||||||
737 | static int | - | ||||||||||||||||||||||||
738 | pathname_is_dir(const char *pathname) | - | ||||||||||||||||||||||||
739 | { | - | ||||||||||||||||||||||||
740 | size_t l = strlen(pathname); | - | ||||||||||||||||||||||||
741 | - | |||||||||||||||||||||||||
742 | return never executed: l > 0return l > 0 && pathname[l - 1] == '/';
never executed: return l > 0 && pathname[l - 1] == '/'; | 0 | ||||||||||||||||||||||||
743 | } | - | ||||||||||||||||||||||||
744 | - | |||||||||||||||||||||||||
745 | static int | - | ||||||||||||||||||||||||
746 | process_get(struct sftp_conn *conn, const char *src, const char *dst, | - | ||||||||||||||||||||||||
747 | const char *pwd, int pflag, int rflag, int resume, int fflag) | - | ||||||||||||||||||||||||
748 | { | - | ||||||||||||||||||||||||
749 | char *abs_src = | - | ||||||||||||||||||||||||
750 | ((void *)0) | - | ||||||||||||||||||||||||
751 | ; | - | ||||||||||||||||||||||||
752 | char *abs_dst = | - | ||||||||||||||||||||||||
753 | ((void *)0) | - | ||||||||||||||||||||||||
754 | ; | - | ||||||||||||||||||||||||
755 | _ssh_compat_glob_t g; | - | ||||||||||||||||||||||||
756 | char *filename, *tmp= | - | ||||||||||||||||||||||||
757 | ((void *)0) | - | ||||||||||||||||||||||||
758 | ; | - | ||||||||||||||||||||||||
759 | int i, r, err = 0; | - | ||||||||||||||||||||||||
760 | - | |||||||||||||||||||||||||
761 | abs_src = xstrdup(src); | - | ||||||||||||||||||||||||
762 | abs_src = make_absolute(abs_src, pwd); | - | ||||||||||||||||||||||||
763 | memset(&g, 0, sizeof(g)); | - | ||||||||||||||||||||||||
764 | - | |||||||||||||||||||||||||
765 | debug3("Looking up %s", abs_src); | - | ||||||||||||||||||||||||
766 | if ((
| 0 | ||||||||||||||||||||||||
767 | ((void *)0)
| 0 | ||||||||||||||||||||||||
768 | , &g)) != 0
| 0 | ||||||||||||||||||||||||
769 | if (r == (-1)
| 0 | ||||||||||||||||||||||||
770 | error("Too many matches for \"%s\".", abs_src); | - | ||||||||||||||||||||||||
771 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||
772 | error("File \"%s\" not found.", abs_src); | - | ||||||||||||||||||||||||
773 | } never executed: end of block | 0 | ||||||||||||||||||||||||
774 | err = -1; | - | ||||||||||||||||||||||||
775 | goto never executed: out;goto out; never executed: goto out; | 0 | ||||||||||||||||||||||||
776 | } | - | ||||||||||||||||||||||||
777 | - | |||||||||||||||||||||||||
778 | - | |||||||||||||||||||||||||
779 | - | |||||||||||||||||||||||||
780 | - | |||||||||||||||||||||||||
781 | - | |||||||||||||||||||||||||
782 | if (g.gl_matchc > 1
| 0 | ||||||||||||||||||||||||
783 | ((void *)0)
| 0 | ||||||||||||||||||||||||
784 | && !is_dir(dst)
| 0 | ||||||||||||||||||||||||
785 | error("Multiple source paths, but destination " | - | ||||||||||||||||||||||||
786 | "\"%s\" is not a directory", dst); | - | ||||||||||||||||||||||||
787 | err = -1; | - | ||||||||||||||||||||||||
788 | goto never executed: out;goto out; never executed: goto out; | 0 | ||||||||||||||||||||||||
789 | } | - | ||||||||||||||||||||||||
790 | - | |||||||||||||||||||||||||
791 | for (i = 0; g.gl_pathv[i]
| 0 | ||||||||||||||||||||||||
792 | tmp = xstrdup(g.gl_pathv[i]); | - | ||||||||||||||||||||||||
793 | if ((
| 0 | ||||||||||||||||||||||||
794 | __xpg_basename
| 0 | ||||||||||||||||||||||||
795 | (tmp)) ==
| 0 | ||||||||||||||||||||||||
796 | ((void *)0)
| 0 | ||||||||||||||||||||||||
797 | ) { | - | ||||||||||||||||||||||||
798 | error("basename %s: %s", tmp, strerror( | - | ||||||||||||||||||||||||
799 | (*__errno_location ()) | - | ||||||||||||||||||||||||
800 | )); | - | ||||||||||||||||||||||||
801 | free(tmp); | - | ||||||||||||||||||||||||
802 | err = -1; | - | ||||||||||||||||||||||||
803 | goto never executed: out;goto out; never executed: goto out; | 0 | ||||||||||||||||||||||||
804 | } | - | ||||||||||||||||||||||||
805 | - | |||||||||||||||||||||||||
806 | if (g.gl_matchc == 1
| 0 | ||||||||||||||||||||||||
807 | if (is_dir(dst)
| 0 | ||||||||||||||||||||||||
808 | abs_dst = path_append(dst, filename); | - | ||||||||||||||||||||||||
809 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||
810 | abs_dst = xstrdup(dst); | - | ||||||||||||||||||||||||
811 | } never executed: end of block | 0 | ||||||||||||||||||||||||
812 | } else if (dst
| 0 | ||||||||||||||||||||||||
813 | abs_dst = path_append(dst, filename); | - | ||||||||||||||||||||||||
814 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||
815 | abs_dst = xstrdup(filename); | - | ||||||||||||||||||||||||
816 | } never executed: end of block | 0 | ||||||||||||||||||||||||
817 | free(tmp); | - | ||||||||||||||||||||||||
818 | - | |||||||||||||||||||||||||
819 | resume |= global_aflag; | - | ||||||||||||||||||||||||
820 | if (!quiet
| 0 | ||||||||||||||||||||||||
821 | mprintf("Resuming %s to %s\n", never executed: mprintf("Resuming %s to %s\n", g.gl_pathv[i], abs_dst); | 0 | ||||||||||||||||||||||||
822 | g.gl_pathv[i], abs_dst); never executed: mprintf("Resuming %s to %s\n", g.gl_pathv[i], abs_dst); | 0 | ||||||||||||||||||||||||
823 | else if (!quiet
| 0 | ||||||||||||||||||||||||
824 | mprintf("Fetching %s to %s\n", never executed: mprintf("Fetching %s to %s\n", g.gl_pathv[i], abs_dst); | 0 | ||||||||||||||||||||||||
825 | g.gl_pathv[i], abs_dst); never executed: mprintf("Fetching %s to %s\n", g.gl_pathv[i], abs_dst); | 0 | ||||||||||||||||||||||||
826 | if (pathname_is_dir(g.gl_pathv[i])
| 0 | ||||||||||||||||||||||||
827 | if (download_dir(conn, g.gl_pathv[i], abs_dst,
| 0 | ||||||||||||||||||||||||
828 | ((void *)0)
| 0 | ||||||||||||||||||||||||
829 | ,
| 0 | ||||||||||||||||||||||||
830 | pflag || global_pflag, 1, resume,
| 0 | ||||||||||||||||||||||||
831 | fflag || global_fflag) == -1
| 0 | ||||||||||||||||||||||||
832 | err = -1; never executed: err = -1; | 0 | ||||||||||||||||||||||||
833 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||
834 | if (do_download(conn, g.gl_pathv[i], abs_dst,
| 0 | ||||||||||||||||||||||||
835 | ((void *)0)
| 0 | ||||||||||||||||||||||||
836 | ,
| 0 | ||||||||||||||||||||||||
837 | pflag || global_pflag, resume,
| 0 | ||||||||||||||||||||||||
838 | fflag || global_fflag) == -1
| 0 | ||||||||||||||||||||||||
839 | err = -1; never executed: err = -1; | 0 | ||||||||||||||||||||||||
840 | } never executed: end of block | 0 | ||||||||||||||||||||||||
841 | free(abs_dst); | - | ||||||||||||||||||||||||
842 | abs_dst = | - | ||||||||||||||||||||||||
843 | ((void *)0) | - | ||||||||||||||||||||||||
844 | ; | - | ||||||||||||||||||||||||
845 | } never executed: end of block | 0 | ||||||||||||||||||||||||
846 | - | |||||||||||||||||||||||||
847 | out: code before this statement never executed: out: | 0 | ||||||||||||||||||||||||
848 | free(abs_src); | - | ||||||||||||||||||||||||
849 | _ssh__compat_globfree(&g); | - | ||||||||||||||||||||||||
850 | return never executed: (err);return(err); never executed: return(err); | 0 | ||||||||||||||||||||||||
851 | } | - | ||||||||||||||||||||||||
852 | - | |||||||||||||||||||||||||
853 | static int | - | ||||||||||||||||||||||||
854 | process_put(struct sftp_conn *conn, const char *src, const char *dst, | - | ||||||||||||||||||||||||
855 | const char *pwd, int pflag, int rflag, int resume, int fflag) | - | ||||||||||||||||||||||||
856 | { | - | ||||||||||||||||||||||||
857 | char *tmp_dst = | - | ||||||||||||||||||||||||
858 | ((void *)0) | - | ||||||||||||||||||||||||
859 | ; | - | ||||||||||||||||||||||||
860 | char *abs_dst = | - | ||||||||||||||||||||||||
861 | ((void *)0) | - | ||||||||||||||||||||||||
862 | ; | - | ||||||||||||||||||||||||
863 | char *tmp = | - | ||||||||||||||||||||||||
864 | ((void *)0) | - | ||||||||||||||||||||||||
865 | , *filename = | - | ||||||||||||||||||||||||
866 | ((void *)0) | - | ||||||||||||||||||||||||
867 | ; | - | ||||||||||||||||||||||||
868 | _ssh_compat_glob_t g; | - | ||||||||||||||||||||||||
869 | int err = 0; | - | ||||||||||||||||||||||||
870 | int i, dst_is_dir = 1; | - | ||||||||||||||||||||||||
871 | struct stat sb; | - | ||||||||||||||||||||||||
872 | - | |||||||||||||||||||||||||
873 | if (dst
| 0 | ||||||||||||||||||||||||
874 | tmp_dst = xstrdup(dst); | - | ||||||||||||||||||||||||
875 | tmp_dst = make_absolute(tmp_dst, pwd); | - | ||||||||||||||||||||||||
876 | } never executed: end of block | 0 | ||||||||||||||||||||||||
877 | - | |||||||||||||||||||||||||
878 | memset(&g, 0, sizeof(g)); | - | ||||||||||||||||||||||||
879 | debug3("Looking up %s", src); | - | ||||||||||||||||||||||||
880 | if (_ssh__compat_glob(src, 0x0010 | 0x0008,
| 0 | ||||||||||||||||||||||||
881 | ((void *)0)
| 0 | ||||||||||||||||||||||||
882 | , &g)
| 0 | ||||||||||||||||||||||||
883 | error("File \"%s\" not found.", src); | - | ||||||||||||||||||||||||
884 | err = -1; | - | ||||||||||||||||||||||||
885 | goto never executed: out;goto out; never executed: goto out; | 0 | ||||||||||||||||||||||||
886 | } | - | ||||||||||||||||||||||||
887 | - | |||||||||||||||||||||||||
888 | - | |||||||||||||||||||||||||
889 | if (tmp_dst !=
| 0 | ||||||||||||||||||||||||
890 | ((void *)0)
| 0 | ||||||||||||||||||||||||
891 | ) | - | ||||||||||||||||||||||||
892 | dst_is_dir = remote_is_dir(conn, tmp_dst); never executed: dst_is_dir = remote_is_dir(conn, tmp_dst); | 0 | ||||||||||||||||||||||||
893 | - | |||||||||||||||||||||||||
894 | - | |||||||||||||||||||||||||
895 | if (g.gl_matchc > 1
| 0 | ||||||||||||||||||||||||
896 | error("Multiple paths match, but destination " | - | ||||||||||||||||||||||||
897 | "\"%s\" is not a directory", tmp_dst); | - | ||||||||||||||||||||||||
898 | err = -1; | - | ||||||||||||||||||||||||
899 | goto never executed: out;goto out; never executed: goto out; | 0 | ||||||||||||||||||||||||
900 | } | - | ||||||||||||||||||||||||
901 | - | |||||||||||||||||||||||||
902 | for (i = 0; g.gl_pathv[i]
| 0 | ||||||||||||||||||||||||
903 | if (stat(g.gl_pathv[i], &sb) == -1
| 0 | ||||||||||||||||||||||||
904 | err = -1; | - | ||||||||||||||||||||||||
905 | error("stat %s: %s", g.gl_pathv[i], strerror( | - | ||||||||||||||||||||||||
906 | (*__errno_location ()) | - | ||||||||||||||||||||||||
907 | )); | - | ||||||||||||||||||||||||
908 | continue; never executed: continue; | 0 | ||||||||||||||||||||||||
909 | } | - | ||||||||||||||||||||||||
910 | - | |||||||||||||||||||||||||
911 | tmp = xstrdup(g.gl_pathv[i]); | - | ||||||||||||||||||||||||
912 | if ((
| 0 | ||||||||||||||||||||||||
913 | __xpg_basename
| 0 | ||||||||||||||||||||||||
914 | (tmp)) ==
| 0 | ||||||||||||||||||||||||
915 | ((void *)0)
| 0 | ||||||||||||||||||||||||
916 | ) { | - | ||||||||||||||||||||||||
917 | error("basename %s: %s", tmp, strerror( | - | ||||||||||||||||||||||||
918 | (*__errno_location ()) | - | ||||||||||||||||||||||||
919 | )); | - | ||||||||||||||||||||||||
920 | free(tmp); | - | ||||||||||||||||||||||||
921 | err = -1; | - | ||||||||||||||||||||||||
922 | goto never executed: out;goto out; never executed: goto out; | 0 | ||||||||||||||||||||||||
923 | } | - | ||||||||||||||||||||||||
924 | - | |||||||||||||||||||||||||
925 | if (g.gl_matchc == 1
| 0 | ||||||||||||||||||||||||
926 | - | |||||||||||||||||||||||||
927 | if (dst_is_dir
| 0 | ||||||||||||||||||||||||
928 | abs_dst = path_append(tmp_dst, filename); never executed: abs_dst = path_append(tmp_dst, filename); | 0 | ||||||||||||||||||||||||
929 | else | - | ||||||||||||||||||||||||
930 | abs_dst = xstrdup(tmp_dst); never executed: abs_dst = xstrdup(tmp_dst); | 0 | ||||||||||||||||||||||||
931 | } else if (tmp_dst
| 0 | ||||||||||||||||||||||||
932 | abs_dst = path_append(tmp_dst, filename); | - | ||||||||||||||||||||||||
933 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||
934 | abs_dst = make_absolute(xstrdup(filename), pwd); | - | ||||||||||||||||||||||||
935 | } never executed: end of block | 0 | ||||||||||||||||||||||||
936 | free(tmp); | - | ||||||||||||||||||||||||
937 | - | |||||||||||||||||||||||||
938 | resume |= global_aflag; | - | ||||||||||||||||||||||||
939 | if (!quiet
| 0 | ||||||||||||||||||||||||
940 | mprintf("Resuming upload of %s to %s\n", never executed: mprintf("Resuming upload of %s to %s\n", g.gl_pathv[i], abs_dst); | 0 | ||||||||||||||||||||||||
941 | g.gl_pathv[i], abs_dst); never executed: mprintf("Resuming upload of %s to %s\n", g.gl_pathv[i], abs_dst); | 0 | ||||||||||||||||||||||||
942 | else if (!quiet
| 0 | ||||||||||||||||||||||||
943 | mprintf("Uploading %s to %s\n", never executed: mprintf("Uploading %s to %s\n", g.gl_pathv[i], abs_dst); | 0 | ||||||||||||||||||||||||
944 | g.gl_pathv[i], abs_dst); never executed: mprintf("Uploading %s to %s\n", g.gl_pathv[i], abs_dst); | 0 | ||||||||||||||||||||||||
945 | if (pathname_is_dir(g.gl_pathv[i])
| 0 | ||||||||||||||||||||||||
946 | if (upload_dir(conn, g.gl_pathv[i], abs_dst,
| 0 | ||||||||||||||||||||||||
947 | pflag || global_pflag, 1, resume,
| 0 | ||||||||||||||||||||||||
948 | fflag || global_fflag) == -1
| 0 | ||||||||||||||||||||||||
949 | err = -1; never executed: err = -1; | 0 | ||||||||||||||||||||||||
950 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||
951 | if (do_upload(conn, g.gl_pathv[i], abs_dst,
| 0 | ||||||||||||||||||||||||
952 | pflag || global_pflag, resume,
| 0 | ||||||||||||||||||||||||
953 | fflag || global_fflag) == -1
| 0 | ||||||||||||||||||||||||
954 | err = -1; never executed: err = -1; | 0 | ||||||||||||||||||||||||
955 | } never executed: end of block | 0 | ||||||||||||||||||||||||
956 | } | - | ||||||||||||||||||||||||
957 | - | |||||||||||||||||||||||||
958 | out: code before this statement never executed: out: | 0 | ||||||||||||||||||||||||
959 | free(abs_dst); | - | ||||||||||||||||||||||||
960 | free(tmp_dst); | - | ||||||||||||||||||||||||
961 | _ssh__compat_globfree(&g); | - | ||||||||||||||||||||||||
962 | return never executed: (err);return(err); never executed: return(err); | 0 | ||||||||||||||||||||||||
963 | } | - | ||||||||||||||||||||||||
964 | - | |||||||||||||||||||||||||
965 | static int | - | ||||||||||||||||||||||||
966 | sdirent_comp(const void *aa, const void *bb) | - | ||||||||||||||||||||||||
967 | { | - | ||||||||||||||||||||||||
968 | SFTP_DIRENT *a = *(SFTP_DIRENT **)aa; | - | ||||||||||||||||||||||||
969 | SFTP_DIRENT *b = *(SFTP_DIRENT **)bb; | - | ||||||||||||||||||||||||
970 | int rmul = sort_flag & 0x0040
| 0 | ||||||||||||||||||||||||
971 | - | |||||||||||||||||||||||||
972 | - | |||||||||||||||||||||||||
973 | if (sort_flag & 0x0008
| 0 | ||||||||||||||||||||||||
974 | return never executed: (rmul * return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
975 | __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
976 | a->filename never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
977 | ) && __builtin_constant_p ( never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
978 | b->filename never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
979 | ) && (__s1_len = __builtin_strlen ( never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
980 | a->filename never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
981 | ), __s2_len = __builtin_strlen ( never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
982 | b->filename never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
983 | ), (!((size_t)(const void *)(( never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
984 | a->filename never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
985 | ) + 1) - (size_t)(const void *)( never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
986 | a->filename never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
987 | ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(( never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
988 | b->filename never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
989 | ) + 1) - (size_t)(const void *)( never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
990 | b->filename never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
991 | ) == 1) || __s2_len >= 4)) ? __builtin_strcmp ( never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
992 | a->filename never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
993 | , never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
994 | b->filename never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
995 | ) : (__builtin_constant_p ( never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
996 | a->filename never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
997 | ) && ((size_t)(const void *)(( never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
998 | a->filename never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
999 | ) + 1) - (size_t)(const void *)( never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
1000 | a->filename never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
1001 | ) == 1) && (__s1_len = __builtin_strlen ( never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
1002 | a->filename never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
1003 | ), __s1_len < 4) ? (__builtin_constant_p ( never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
1004 | b->filename never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
1005 | ) && ((size_t)(const void *)(( never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
1006 | b->filename never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
1007 | ) + 1) - (size_t)(const void *)( never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
1008 | b->filename never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
1009 | ) == 1) ? __builtin_strcmp ( never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
1010 | a->filename never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
1011 | , never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
1012 | b->filename never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
1013 | ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ( never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
1014 | b->filename never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
1015 | ); int __result = (((const unsigned char *) (const char *) ( never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
1016 | a->filename never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
1017 | ))[0] - __s2[0]); if (__s1_len > 0
never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
1018 | a->filename never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
1019 | ))[1] - __s2[1]); if (__s1_len > 1
never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
1020 | a->filename never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
1021 | ))[2] - __s2[2]); if (__s1_len > 2
never executed: __result = (((const unsigned char *) (const char *) ( a->filename ))[3] - __s2[3]); never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
1022 | a->filename never executed: __result = (((const unsigned char *) (const char *) ( a->filename ))[3] - __s2[3]); never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
1023 | ))[3] - __s2[3]); never executed: }__result = (((const unsigned char *) (const char *) ( a->filename ))[3] - __s2[3]); never executed: }end of block never executed: __result; }))) : (__builtin_constant_p (end of block never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
1024 | b->filename never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
1025 | ) && ((size_t)(const void *)(( never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
1026 | b->filename never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
1027 | ) + 1) - (size_t)(const void *)( never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
1028 | b->filename never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
1029 | ) == 1) && (__s2_len = __builtin_strlen ( never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
1030 | b->filename never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
1031 | ), __s2_len < 4) ? (__builtin_constant_p ( never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
1032 | a->filename never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
1033 | ) && ((size_t)(const void *)(( never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
1034 | a->filename never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
1035 | ) + 1) - (size_t)(const void *)( never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
1036 | a->filename never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
1037 | ) == 1) ? __builtin_strcmp ( never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
1038 | a->filename never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
1039 | , never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
1040 | b->filename never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
1041 | ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ( never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
1042 | a->filename never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
1043 | ); int __result = (((const unsigned char *) (const char *) ( never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
1044 | b->filename never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
1045 | ))[0] - __s2[0]); if (__s2_len > 0
never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
1046 | b->filename never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
1047 | ))[1] - __s2[1]); if (__s2_len > 1
never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
1048 | b->filename never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
1049 | ))[2] - __s2[2]); if (__s2_len > 2
never executed: __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
1050 | b->filename never executed: __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
1051 | ))[3] - __s2[3]); never executed: }__result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); never executed: }end of block never executed: __result; }))) : __builtin_strcmp (end of block never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
1052 | a->filename never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
1053 | , never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
1054 | b->filename never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
1055 | )))); }) never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
1056 | ); never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( a->filename ) && __builtin_constant_p ( b->filename ) && (__s1_len = __builtin_strlen ( a->filename ), __s2_len = __builtin_strlen ( b->filename ), (!((size_t)(const void *...ned char *) (const char *) ( b->filename ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( b->filename ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( a->filename , b->filename )))); }) ); | 0 | ||||||||||||||||||||||||
1057 | else if (sort_flag & 0x0010
| 0 | ||||||||||||||||||||||||
1058 | return never executed: (rmul * (a->a.mtime == b->a.mtime ? 0 : (a->a.mtime < b->a.mtime ? 1 : -1)));return (rmul * (a->a.mtime == b->a.mtime ? 0 : (a->a.mtime < b->a.mtime ? 1 : -1))); never executed: return (rmul * (a->a.mtime == b->a.mtime ? 0 : (a->a.mtime < b->a.mtime ? 1 : -1))); | 0 | ||||||||||||||||||||||||
1059 | else if (sort_flag & 0x0020
| 0 | ||||||||||||||||||||||||
1060 | return never executed: (rmul * (a->a.size == b->a.size ? 0 : (a->a.size < b->a.size ? 1 : -1)));return (rmul * (a->a.size == b->a.size ? 0 : (a->a.size < b->a.size ? 1 : -1))); never executed: return (rmul * (a->a.size == b->a.size ? 0 : (a->a.size < b->a.size ? 1 : -1))); | 0 | ||||||||||||||||||||||||
1061 | - | |||||||||||||||||||||||||
1062 | fatal("Unknown ls sort type"); | - | ||||||||||||||||||||||||
1063 | } never executed: end of block | 0 | ||||||||||||||||||||||||
1064 | - | |||||||||||||||||||||||||
1065 | - | |||||||||||||||||||||||||
1066 | static int | - | ||||||||||||||||||||||||
1067 | do_ls_dir(struct sftp_conn *conn, const char *path, | - | ||||||||||||||||||||||||
1068 | const char *strip_path, int lflag) | - | ||||||||||||||||||||||||
1069 | { | - | ||||||||||||||||||||||||
1070 | int n; | - | ||||||||||||||||||||||||
1071 | u_int c = 1, colspace = 0, columns = 1; | - | ||||||||||||||||||||||||
1072 | SFTP_DIRENT **d; | - | ||||||||||||||||||||||||
1073 | - | |||||||||||||||||||||||||
1074 | if ((
| 0 | ||||||||||||||||||||||||
1075 | return never executed: (n);return (n); never executed: return (n); | 0 | ||||||||||||||||||||||||
1076 | - | |||||||||||||||||||||||||
1077 | if (!(lflag & 0x0002)
| 0 | ||||||||||||||||||||||||
1078 | u_int m = 0, width = 80; | - | ||||||||||||||||||||||||
1079 | struct winsize ws; | - | ||||||||||||||||||||||||
1080 | char *tmp; | - | ||||||||||||||||||||||||
1081 | - | |||||||||||||||||||||||||
1082 | - | |||||||||||||||||||||||||
1083 | for (n = 0; d[n] !=
| 0 | ||||||||||||||||||||||||
1084 | ((void *)0)
| 0 | ||||||||||||||||||||||||
1085 | ; n++) { | - | ||||||||||||||||||||||||
1086 | if (d[n]->filename[0] != '.'
| 0 | ||||||||||||||||||||||||
1087 | m = (((
never executed: m = (((m) > (strlen(d[n]->filename))) ? (m) : (strlen(d[n]->filename))); | 0 | ||||||||||||||||||||||||
1088 | } never executed: end of block | 0 | ||||||||||||||||||||||||
1089 | - | |||||||||||||||||||||||||
1090 | - | |||||||||||||||||||||||||
1091 | tmp = path_strip(path, strip_path); | - | ||||||||||||||||||||||||
1092 | m += strlen(tmp); | - | ||||||||||||||||||||||||
1093 | free(tmp); | - | ||||||||||||||||||||||||
1094 | - | |||||||||||||||||||||||||
1095 | if (ioctl(fileno(
| 0 | ||||||||||||||||||||||||
1096 | stdin
| 0 | ||||||||||||||||||||||||
1097 | ),
| 0 | ||||||||||||||||||||||||
1098 | 0x5413
| 0 | ||||||||||||||||||||||||
1099 | , &ws) != -1
| 0 | ||||||||||||||||||||||||
1100 | width = ws.ws_col; never executed: width = ws.ws_col; | 0 | ||||||||||||||||||||||||
1101 | - | |||||||||||||||||||||||||
1102 | columns = width / (m + 2); | - | ||||||||||||||||||||||||
1103 | columns = (((
| 0 | ||||||||||||||||||||||||
1104 | colspace = width / columns; | - | ||||||||||||||||||||||||
1105 | colspace = (((
| 0 | ||||||||||||||||||||||||
1106 | } never executed: end of block | 0 | ||||||||||||||||||||||||
1107 | - | |||||||||||||||||||||||||
1108 | if (lflag & (0x0008|0x0010|0x0020)
| 0 | ||||||||||||||||||||||||
1109 | for (n = 0; d[n] !=
| 0 | ||||||||||||||||||||||||
1110 | ((void *)0)
| 0 | ||||||||||||||||||||||||
1111 | ; n++) | - | ||||||||||||||||||||||||
1112 | ; never executed: ; | 0 | ||||||||||||||||||||||||
1113 | sort_flag = lflag & ((0x0008|0x0010|0x0020)|0x0040); | - | ||||||||||||||||||||||||
1114 | qsort(d, n, sizeof(*d), sdirent_comp); | - | ||||||||||||||||||||||||
1115 | } never executed: end of block | 0 | ||||||||||||||||||||||||
1116 | - | |||||||||||||||||||||||||
1117 | for (n = 0; d[n] !=
| 0 | ||||||||||||||||||||||||
1118 | ((void *)0)
| 0 | ||||||||||||||||||||||||
1119 | && !interrupted
| 0 | ||||||||||||||||||||||||
1120 | char *tmp, *fname; | - | ||||||||||||||||||||||||
1121 | - | |||||||||||||||||||||||||
1122 | if (d[n]->filename[0] == '.'
| 0 | ||||||||||||||||||||||||
1123 | continue; never executed: continue; | 0 | ||||||||||||||||||||||||
1124 | - | |||||||||||||||||||||||||
1125 | tmp = path_append(path, d[n]->filename); | - | ||||||||||||||||||||||||
1126 | fname = path_strip(tmp, strip_path); | - | ||||||||||||||||||||||||
1127 | free(tmp); | - | ||||||||||||||||||||||||
1128 | - | |||||||||||||||||||||||||
1129 | if (lflag & 0x0001
| 0 | ||||||||||||||||||||||||
1130 | if (lflag & (0x0004|0x0100)
| 0 | ||||||||||||||||||||||||
1131 | char *lname; | - | ||||||||||||||||||||||||
1132 | struct stat sb; | - | ||||||||||||||||||||||||
1133 | - | |||||||||||||||||||||||||
1134 | memset(&sb, 0, sizeof(sb)); | - | ||||||||||||||||||||||||
1135 | attrib_to_stat(&d[n]->a, &sb); | - | ||||||||||||||||||||||||
1136 | lname = ls_file(fname, &sb, 1, | - | ||||||||||||||||||||||||
1137 | (lflag & 0x0100)); | - | ||||||||||||||||||||||||
1138 | mprintf("%s\n", lname); | - | ||||||||||||||||||||||||
1139 | free(lname); | - | ||||||||||||||||||||||||
1140 | } never executed: elseend of block | 0 | ||||||||||||||||||||||||
1141 | mprintf("%s\n", d[n]->longname); never executed: mprintf("%s\n", d[n]->longname); | 0 | ||||||||||||||||||||||||
1142 | } else { | - | ||||||||||||||||||||||||
1143 | mprintf("%-*s", colspace, fname); | - | ||||||||||||||||||||||||
1144 | if (c >= columns
| 0 | ||||||||||||||||||||||||
1145 | printf("\n"); | - | ||||||||||||||||||||||||
1146 | c = 1; | - | ||||||||||||||||||||||||
1147 | } never executed: elseend of block | 0 | ||||||||||||||||||||||||
1148 | c++; never executed: c++; | 0 | ||||||||||||||||||||||||
1149 | } | - | ||||||||||||||||||||||||
1150 | - | |||||||||||||||||||||||||
1151 | free(fname); | - | ||||||||||||||||||||||||
1152 | } never executed: end of block | 0 | ||||||||||||||||||||||||
1153 | - | |||||||||||||||||||||||||
1154 | if (!(lflag & 0x0001)
| 0 | ||||||||||||||||||||||||
1155 | printf("\n"); never executed: printf("\n"); | 0 | ||||||||||||||||||||||||
1156 | - | |||||||||||||||||||||||||
1157 | free_sftp_dirents(d); | - | ||||||||||||||||||||||||
1158 | return never executed: (0);return (0); never executed: return (0); | 0 | ||||||||||||||||||||||||
1159 | } | - | ||||||||||||||||||||||||
1160 | - | |||||||||||||||||||||||||
1161 | static int | - | ||||||||||||||||||||||||
1162 | sglob_comp(const void *aa, const void *bb) | - | ||||||||||||||||||||||||
1163 | { | - | ||||||||||||||||||||||||
1164 | u_int a = *(const u_int *)aa; | - | ||||||||||||||||||||||||
1165 | u_int b = *(const u_int *)bb; | - | ||||||||||||||||||||||||
1166 | const char *ap = sort_glob->gl_pathv[a]; | - | ||||||||||||||||||||||||
1167 | const char *bp = sort_glob->gl_pathv[b]; | - | ||||||||||||||||||||||||
1168 | const struct stat *as = sort_glob->gl_statv[a]; | - | ||||||||||||||||||||||||
1169 | const struct stat *bs = sort_glob->gl_statv[b]; | - | ||||||||||||||||||||||||
1170 | int rmul = sort_flag & 0x0040
| 0 | ||||||||||||||||||||||||
1171 | - | |||||||||||||||||||||||||
1172 | - | |||||||||||||||||||||||||
1173 | if (sort_flag & 0x0008
| 0 | ||||||||||||||||||||||||
1174 | return never executed: (rmul * return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1175 | __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1176 | ap never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1177 | ) && __builtin_constant_p ( never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1178 | bp never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1179 | ) && (__s1_len = __builtin_strlen ( never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1180 | ap never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1181 | ), __s2_len = __builtin_strlen ( never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1182 | bp never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1183 | ), (!((size_t)(const void *)(( never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1184 | ap never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1185 | ) + 1) - (size_t)(const void *)( never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1186 | ap never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1187 | ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(( never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1188 | bp never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1189 | ) + 1) - (size_t)(const void *)( never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1190 | bp never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1191 | ) == 1) || __s2_len >= 4)) ? __builtin_strcmp ( never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1192 | ap never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1193 | , never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1194 | bp never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1195 | ) : (__builtin_constant_p ( never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1196 | ap never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1197 | ) && ((size_t)(const void *)(( never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1198 | ap never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1199 | ) + 1) - (size_t)(const void *)( never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1200 | ap never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1201 | ) == 1) && (__s1_len = __builtin_strlen ( never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1202 | ap never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1203 | ), __s1_len < 4) ? (__builtin_constant_p ( never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1204 | bp never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1205 | ) && ((size_t)(const void *)(( never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1206 | bp never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1207 | ) + 1) - (size_t)(const void *)( never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1208 | bp never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1209 | ) == 1) ? __builtin_strcmp ( never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1210 | ap never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1211 | , never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1212 | bp never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1213 | ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ( never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1214 | bp never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1215 | ); int __result = (((const unsigned char *) (const char *) ( never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1216 | ap never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1217 | ))[0] - __s2[0]); if (__s1_len > 0
never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1218 | ap never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1219 | ))[1] - __s2[1]); if (__s1_len > 1
never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1220 | ap never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1221 | ))[2] - __s2[2]); if (__s1_len > 2
never executed: __result = (((const unsigned char *) (const char *) ( ap ))[3] - __s2[3]); never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1222 | ap never executed: __result = (((const unsigned char *) (const char *) ( ap ))[3] - __s2[3]); never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1223 | ))[3] - __s2[3]); never executed: }__result = (((const unsigned char *) (const char *) ( ap ))[3] - __s2[3]); never executed: }end of block never executed: __result; }))) : (__builtin_constant_p (end of block never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1224 | bp never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1225 | ) && ((size_t)(const void *)(( never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1226 | bp never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1227 | ) + 1) - (size_t)(const void *)( never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1228 | bp never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1229 | ) == 1) && (__s2_len = __builtin_strlen ( never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1230 | bp never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1231 | ), __s2_len < 4) ? (__builtin_constant_p ( never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1232 | ap never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1233 | ) && ((size_t)(const void *)(( never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1234 | ap never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1235 | ) + 1) - (size_t)(const void *)( never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1236 | ap never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1237 | ) == 1) ? __builtin_strcmp ( never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1238 | ap never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1239 | , never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1240 | bp never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1241 | ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ( never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1242 | ap never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1243 | ); int __result = (((const unsigned char *) (const char *) ( never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1244 | bp never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1245 | ))[0] - __s2[0]); if (__s2_len > 0
never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1246 | bp never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1247 | ))[1] - __s2[1]); if (__s2_len > 1
never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1248 | bp never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1249 | ))[2] - __s2[2]); if (__s2_len > 2
never executed: __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1250 | bp never executed: __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1251 | ))[3] - __s2[3]); never executed: }__result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); never executed: }end of block never executed: __result; }))) : __builtin_strcmp (end of block never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1252 | ap never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1253 | , never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1254 | bp never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1255 | )))); }) never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1256 | ); never executed: return (rmul * __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ( ap ) && __builtin_constant_p ( bp ) && (__s1_len = __builtin_strlen ( ap ), __s2_len = __builtin_strlen ( bp ), (!((size_t)(const void *)(( ap ) + 1) - (size_t)(const void ...lt == 0) { __result = (((const unsigned char *) (const char *) ( bp ))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ( bp ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp ( ap , bp )))); }) ); | 0 | ||||||||||||||||||||||||
1257 | else if (sort_flag & 0x0010
| 0 | ||||||||||||||||||||||||
1258 | - | |||||||||||||||||||||||||
1259 | return never executed: (rmul * (((&as->st_mtim)->tv_sec == (&bs->st_mtim)->tv_sec) ? ((&as->st_mtim)->tv_nsec < (&bs->st_mtim)->tv_nsec) : ((&as->st_mtim)->tv_sec < (&bs->st_mtim)->tv_sec)));return (rmul * (((&as->st_mtim)->tv_sec == (&bs->st_mtim)->tv_sec) ? ((&as->st_mtim)->tv_nsec < (&bs->st_mtim)->tv_nsec) : ((&as->st_mtim)->tv_sec < (&bs->st_mtim)->tv_sec))); never executed: return (rmul * (((&as->st_mtim)->tv_sec == (&bs->st_mtim)->tv_sec) ? ((&as->st_mtim)->tv_nsec < (&bs->st_mtim)->tv_nsec) : ((&as->st_mtim)->tv_sec < (&bs->st_mtim)->tv_sec))); | 0 | ||||||||||||||||||||||||
1260 | - | |||||||||||||||||||||||||
1261 | - | |||||||||||||||||||||||||
1262 | - | |||||||||||||||||||||||||
1263 | - | |||||||||||||||||||||||||
1264 | - | |||||||||||||||||||||||||
1265 | } else if (sort_flag & 0x0020
| 0 | ||||||||||||||||||||||||
1266 | return never executed: (rmul * (as->st_size == bs->st_size ? 0 : (as->st_size < bs->st_size ? 1 : -1)));return (rmul * (as->st_size == bs->st_size ? 0 : (as->st_size < bs->st_size ? 1 : -1))); never executed: return (rmul * (as->st_size == bs->st_size ? 0 : (as->st_size < bs->st_size ? 1 : -1))); | 0 | ||||||||||||||||||||||||
1267 | - | |||||||||||||||||||||||||
1268 | fatal("Unknown ls sort type"); | - | ||||||||||||||||||||||||
1269 | } never executed: end of block | 0 | ||||||||||||||||||||||||
1270 | - | |||||||||||||||||||||||||
1271 | - | |||||||||||||||||||||||||
1272 | static int | - | ||||||||||||||||||||||||
1273 | do_globbed_ls(struct sftp_conn *conn, const char *path, | - | ||||||||||||||||||||||||
1274 | const char *strip_path, int lflag) | - | ||||||||||||||||||||||||
1275 | { | - | ||||||||||||||||||||||||
1276 | char *fname, *lname; | - | ||||||||||||||||||||||||
1277 | _ssh_compat_glob_t g; | - | ||||||||||||||||||||||||
1278 | int err, r; | - | ||||||||||||||||||||||||
1279 | struct winsize ws; | - | ||||||||||||||||||||||||
1280 | u_int i, j, nentries, *indices = | - | ||||||||||||||||||||||||
1281 | ((void *)0) | - | ||||||||||||||||||||||||
1282 | , c = 1; | - | ||||||||||||||||||||||||
1283 | u_int colspace = 0, columns = 1, m = 0, width = 80; | - | ||||||||||||||||||||||||
1284 | - | |||||||||||||||||||||||||
1285 | memset(&g, 0, sizeof(g)); | - | ||||||||||||||||||||||||
1286 | - | |||||||||||||||||||||||||
1287 | if ((
| 0 | ||||||||||||||||||||||||
1288 | 0x0008|0x0010|0x0080|0x4000|0x0020,
| 0 | ||||||||||||||||||||||||
1289 |
| 0 | ||||||||||||||||||||||||
1290 | ((void *)0)
| 0 | ||||||||||||||||||||||||
1291 | , &g)) != 0
| 0 | ||||||||||||||||||||||||
1292 | (g.gl_pathc
| 0 | ||||||||||||||||||||||||
1293 | if (g.gl_pathc
| 0 | ||||||||||||||||||||||||
1294 | _ssh__compat_globfree(&g); never executed: _ssh__compat_globfree(&g); | 0 | ||||||||||||||||||||||||
1295 | if (r == (-1)
| 0 | ||||||||||||||||||||||||
1296 | error("Can't ls: Too many matches for \"%s\"", path); | - | ||||||||||||||||||||||||
1297 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||
1298 | error("Can't ls: \"%s\" not found", path); | - | ||||||||||||||||||||||||
1299 | } never executed: end of block | 0 | ||||||||||||||||||||||||
1300 | return never executed: -1;return -1; never executed: return -1; | 0 | ||||||||||||||||||||||||
1301 | } | - | ||||||||||||||||||||||||
1302 | - | |||||||||||||||||||||||||
1303 | if (interrupted
| 0 | ||||||||||||||||||||||||
1304 | goto never executed: out;goto out; never executed: goto out; | 0 | ||||||||||||||||||||||||
1305 | - | |||||||||||||||||||||||||
1306 | - | |||||||||||||||||||||||||
1307 | - | |||||||||||||||||||||||||
1308 | - | |||||||||||||||||||||||||
1309 | - | |||||||||||||||||||||||||
1310 | if (g.gl_matchc == 1
| 0 | ||||||||||||||||||||||||
1311 | ((void *)0)
| 0 | ||||||||||||||||||||||||
1312 | && | - | ||||||||||||||||||||||||
1313 | - | |||||||||||||||||||||||||
1314 | ((((
| 0 | ||||||||||||||||||||||||
1315 | g.gl_statv[0]->st_mode
| 0 | ||||||||||||||||||||||||
1316 | )) & 0170000) == (0040000))
| 0 | ||||||||||||||||||||||||
1317 | ) { | - | ||||||||||||||||||||||||
1318 | err = do_ls_dir(conn, g.gl_pathv[0], strip_path, lflag); | - | ||||||||||||||||||||||||
1319 | _ssh__compat_globfree(&g); | - | ||||||||||||||||||||||||
1320 | return never executed: err;return err; never executed: return err; | 0 | ||||||||||||||||||||||||
1321 | } | - | ||||||||||||||||||||||||
1322 | - | |||||||||||||||||||||||||
1323 | if (ioctl(fileno(
| 0 | ||||||||||||||||||||||||
1324 | stdin
| 0 | ||||||||||||||||||||||||
1325 | ),
| 0 | ||||||||||||||||||||||||
1326 | 0x5413
| 0 | ||||||||||||||||||||||||
1327 | , &ws) != -1
| 0 | ||||||||||||||||||||||||
1328 | width = ws.ws_col; never executed: width = ws.ws_col; | 0 | ||||||||||||||||||||||||
1329 | - | |||||||||||||||||||||||||
1330 | if (!(lflag & 0x0002)
| 0 | ||||||||||||||||||||||||
1331 | - | |||||||||||||||||||||||||
1332 | for (i = 0; g.gl_pathv[i]
| 0 | ||||||||||||||||||||||||
1333 | m = (((
never executed: m = (((m) > (strlen(g.gl_pathv[i]))) ? (m) : (strlen(g.gl_pathv[i]))); | 0 | ||||||||||||||||||||||||
1334 | - | |||||||||||||||||||||||||
1335 | columns = width / (m + 2); | - | ||||||||||||||||||||||||
1336 | columns = (((
| 0 | ||||||||||||||||||||||||
1337 | colspace = width / columns; | - | ||||||||||||||||||||||||
1338 | } never executed: end of block | 0 | ||||||||||||||||||||||||
1339 | - | |||||||||||||||||||||||||
1340 | - | |||||||||||||||||||||||||
1341 | - | |||||||||||||||||||||||||
1342 | - | |||||||||||||||||||||||||
1343 | - | |||||||||||||||||||||||||
1344 | - | |||||||||||||||||||||||||
1345 | for (nentries = 0; g.gl_pathv[nentries] !=
| 0 | ||||||||||||||||||||||||
1346 | ((void *)0)
| 0 | ||||||||||||||||||||||||
1347 | ; nentries++) | - | ||||||||||||||||||||||||
1348 | ; never executed: ; | 0 | ||||||||||||||||||||||||
1349 | indices = calloc(nentries, sizeof(*indices)); | - | ||||||||||||||||||||||||
1350 | for (i = 0; i < nentries
| 0 | ||||||||||||||||||||||||
1351 | indices[i] = i; never executed: indices[i] = i; | 0 | ||||||||||||||||||||||||
1352 | - | |||||||||||||||||||||||||
1353 | if (lflag & (0x0008|0x0010|0x0020)
| 0 | ||||||||||||||||||||||||
1354 | sort_glob = &g; | - | ||||||||||||||||||||||||
1355 | sort_flag = lflag & ((0x0008|0x0010|0x0020)|0x0040); | - | ||||||||||||||||||||||||
1356 | qsort(indices, nentries, sizeof(*indices), sglob_comp); | - | ||||||||||||||||||||||||
1357 | sort_glob = | - | ||||||||||||||||||||||||
1358 | ((void *)0) | - | ||||||||||||||||||||||||
1359 | ; | - | ||||||||||||||||||||||||
1360 | } never executed: end of block | 0 | ||||||||||||||||||||||||
1361 | - | |||||||||||||||||||||||||
1362 | for (j = 0; j < nentries
| 0 | ||||||||||||||||||||||||
1363 | i = indices[j]; | - | ||||||||||||||||||||||||
1364 | fname = path_strip(g.gl_pathv[i], strip_path); | - | ||||||||||||||||||||||||
1365 | if (lflag & 0x0001
| 0 | ||||||||||||||||||||||||
1366 | if (g.gl_statv[i] ==
| 0 | ||||||||||||||||||||||||
1367 | ((void *)0)
| 0 | ||||||||||||||||||||||||
1368 | ) { | - | ||||||||||||||||||||||||
1369 | error("no stat information for %s", fname); | - | ||||||||||||||||||||||||
1370 | continue; never executed: continue; | 0 | ||||||||||||||||||||||||
1371 | } | - | ||||||||||||||||||||||||
1372 | lname = ls_file(fname, g.gl_statv[i], 1, | - | ||||||||||||||||||||||||
1373 | (lflag & 0x0100)); | - | ||||||||||||||||||||||||
1374 | mprintf("%s\n", lname); | - | ||||||||||||||||||||||||
1375 | free(lname); | - | ||||||||||||||||||||||||
1376 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||
1377 | mprintf("%-*s", colspace, fname); | - | ||||||||||||||||||||||||
1378 | if (c >= columns
| 0 | ||||||||||||||||||||||||
1379 | printf("\n"); | - | ||||||||||||||||||||||||
1380 | c = 1; | - | ||||||||||||||||||||||||
1381 | } never executed: elseend of block | 0 | ||||||||||||||||||||||||
1382 | c++; never executed: c++; | 0 | ||||||||||||||||||||||||
1383 | } | - | ||||||||||||||||||||||||
1384 | free(fname); | - | ||||||||||||||||||||||||
1385 | } never executed: end of block | 0 | ||||||||||||||||||||||||
1386 | - | |||||||||||||||||||||||||
1387 | if (!(lflag & 0x0001)
| 0 | ||||||||||||||||||||||||
1388 | printf("\n"); never executed: printf("\n"); | 0 | ||||||||||||||||||||||||
1389 | - | |||||||||||||||||||||||||
1390 | out: code before this statement never executed: out: | 0 | ||||||||||||||||||||||||
1391 | if (g.gl_pathc
| 0 | ||||||||||||||||||||||||
1392 | _ssh__compat_globfree(&g); never executed: _ssh__compat_globfree(&g); | 0 | ||||||||||||||||||||||||
1393 | free(indices); | - | ||||||||||||||||||||||||
1394 | - | |||||||||||||||||||||||||
1395 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
1396 | } | - | ||||||||||||||||||||||||
1397 | - | |||||||||||||||||||||||||
1398 | static int | - | ||||||||||||||||||||||||
1399 | do_df(struct sftp_conn *conn, const char *path, int hflag, int iflag) | - | ||||||||||||||||||||||||
1400 | { | - | ||||||||||||||||||||||||
1401 | struct sftp_statvfs st; | - | ||||||||||||||||||||||||
1402 | char s_used[7], s_avail[7]; | - | ||||||||||||||||||||||||
1403 | char s_root[7], s_total[7]; | - | ||||||||||||||||||||||||
1404 | char s_icapacity[16], s_dcapacity[16]; | - | ||||||||||||||||||||||||
1405 | - | |||||||||||||||||||||||||
1406 | if (do_statvfs(conn, path, &st, 1) == -1
| 0 | ||||||||||||||||||||||||
1407 | return never executed: -1;return -1; never executed: return -1; | 0 | ||||||||||||||||||||||||
1408 | if (st.f_files == 0
| 0 | ||||||||||||||||||||||||
1409 | strlcpy(s_icapacity, "ERR", sizeof(s_icapacity)); never executed: strlcpy(s_icapacity, "ERR", sizeof(s_icapacity)); | 0 | ||||||||||||||||||||||||
1410 | else { | - | ||||||||||||||||||||||||
1411 | snprintf(s_icapacity, sizeof(s_icapacity), "%3llu%%", | - | ||||||||||||||||||||||||
1412 | (unsigned long long)(100 * (st.f_files - st.f_ffree) / | - | ||||||||||||||||||||||||
1413 | st.f_files)); | - | ||||||||||||||||||||||||
1414 | } never executed: end of block | 0 | ||||||||||||||||||||||||
1415 | if (st.f_blocks == 0
| 0 | ||||||||||||||||||||||||
1416 | strlcpy(s_dcapacity, "ERR", sizeof(s_dcapacity)); never executed: strlcpy(s_dcapacity, "ERR", sizeof(s_dcapacity)); | 0 | ||||||||||||||||||||||||
1417 | else { | - | ||||||||||||||||||||||||
1418 | snprintf(s_dcapacity, sizeof(s_dcapacity), "%3llu%%", | - | ||||||||||||||||||||||||
1419 | (unsigned long long)(100 * (st.f_blocks - st.f_bfree) / | - | ||||||||||||||||||||||||
1420 | st.f_blocks)); | - | ||||||||||||||||||||||||
1421 | } never executed: end of block | 0 | ||||||||||||||||||||||||
1422 | if (iflag
| 0 | ||||||||||||||||||||||||
1423 | printf(" Inodes Used Avail " | - | ||||||||||||||||||||||||
1424 | "(root) %%Capacity\n"); | - | ||||||||||||||||||||||||
1425 | printf("%11llu %11llu %11llu %11llu %s\n", | - | ||||||||||||||||||||||||
1426 | (unsigned long long)st.f_files, | - | ||||||||||||||||||||||||
1427 | (unsigned long long)(st.f_files - st.f_ffree), | - | ||||||||||||||||||||||||
1428 | (unsigned long long)st.f_favail, | - | ||||||||||||||||||||||||
1429 | (unsigned long long)st.f_ffree, s_icapacity); | - | ||||||||||||||||||||||||
1430 | } never executed: else if (hflagend of block
| 0 | ||||||||||||||||||||||||
1431 | strlcpy(s_used, "error", sizeof(s_used)); | - | ||||||||||||||||||||||||
1432 | strlcpy(s_avail, "error", sizeof(s_avail)); | - | ||||||||||||||||||||||||
1433 | strlcpy(s_root, "error", sizeof(s_root)); | - | ||||||||||||||||||||||||
1434 | strlcpy(s_total, "error", sizeof(s_total)); | - | ||||||||||||||||||||||||
1435 | fmt_scaled((st.f_blocks - st.f_bfree) * st.f_frsize, s_used); | - | ||||||||||||||||||||||||
1436 | fmt_scaled(st.f_bavail * st.f_frsize, s_avail); | - | ||||||||||||||||||||||||
1437 | fmt_scaled(st.f_bfree * st.f_frsize, s_root); | - | ||||||||||||||||||||||||
1438 | fmt_scaled(st.f_blocks * st.f_frsize, s_total); | - | ||||||||||||||||||||||||
1439 | printf(" Size Used Avail (root) %%Capacity\n"); | - | ||||||||||||||||||||||||
1440 | printf("%7sB %7sB %7sB %7sB %s\n", | - | ||||||||||||||||||||||||
1441 | s_total, s_used, s_avail, s_root, s_dcapacity); | - | ||||||||||||||||||||||||
1442 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||
1443 | printf(" Size Used Avail " | - | ||||||||||||||||||||||||
1444 | "(root) %%Capacity\n"); | - | ||||||||||||||||||||||||
1445 | printf("%12llu %12llu %12llu %12llu %s\n", | - | ||||||||||||||||||||||||
1446 | (unsigned long long)(st.f_frsize * st.f_blocks / 1024), | - | ||||||||||||||||||||||||
1447 | (unsigned long long)(st.f_frsize * | - | ||||||||||||||||||||||||
1448 | (st.f_blocks - st.f_bfree) / 1024), | - | ||||||||||||||||||||||||
1449 | (unsigned long long)(st.f_frsize * st.f_bavail / 1024), | - | ||||||||||||||||||||||||
1450 | (unsigned long long)(st.f_frsize * st.f_bfree / 1024), | - | ||||||||||||||||||||||||
1451 | s_dcapacity); | - | ||||||||||||||||||||||||
1452 | } never executed: end of block | 0 | ||||||||||||||||||||||||
1453 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
1454 | } | - | ||||||||||||||||||||||||
1455 | - | |||||||||||||||||||||||||
1456 | - | |||||||||||||||||||||||||
1457 | - | |||||||||||||||||||||||||
1458 | - | |||||||||||||||||||||||||
1459 | - | |||||||||||||||||||||||||
1460 | - | |||||||||||||||||||||||||
1461 | static void | - | ||||||||||||||||||||||||
1462 | undo_glob_escape(char *s) | - | ||||||||||||||||||||||||
1463 | { | - | ||||||||||||||||||||||||
1464 | size_t i, j; | - | ||||||||||||||||||||||||
1465 | - | |||||||||||||||||||||||||
1466 | for (i = j = 0;;) { | - | ||||||||||||||||||||||||
1467 | if (s[i] == '\0'
| 0 | ||||||||||||||||||||||||
1468 | s[j] = '\0'; | - | ||||||||||||||||||||||||
1469 | return; never executed: return; | 0 | ||||||||||||||||||||||||
1470 | } | - | ||||||||||||||||||||||||
1471 | if (s[i] != '\\'
| 0 | ||||||||||||||||||||||||
1472 | s[j++] = s[i++]; | - | ||||||||||||||||||||||||
1473 | continue; never executed: continue; | 0 | ||||||||||||||||||||||||
1474 | } | - | ||||||||||||||||||||||||
1475 | - | |||||||||||||||||||||||||
1476 | ++i; | - | ||||||||||||||||||||||||
1477 | switch (s[i]) { | - | ||||||||||||||||||||||||
1478 | case never executed: '?':case '?': never executed: case '?': | 0 | ||||||||||||||||||||||||
1479 | case never executed: '[':case '[': never executed: case '[': | 0 | ||||||||||||||||||||||||
1480 | case never executed: '*':case '*': never executed: case '*': | 0 | ||||||||||||||||||||||||
1481 | case never executed: '\\':case '\\': never executed: case '\\': | 0 | ||||||||||||||||||||||||
1482 | s[j++] = s[i++]; | - | ||||||||||||||||||||||||
1483 | break; never executed: break; | 0 | ||||||||||||||||||||||||
1484 | case never executed: '\0':case '\0': never executed: case '\0': | 0 | ||||||||||||||||||||||||
1485 | s[j++] = '\\'; | - | ||||||||||||||||||||||||
1486 | s[j] = '\0'; | - | ||||||||||||||||||||||||
1487 | return; never executed: return; | 0 | ||||||||||||||||||||||||
1488 | default never executed: :default: never executed: default: | 0 | ||||||||||||||||||||||||
1489 | s[j++] = '\\'; | - | ||||||||||||||||||||||||
1490 | s[j++] = s[i++]; | - | ||||||||||||||||||||||||
1491 | break; never executed: break; | 0 | ||||||||||||||||||||||||
1492 | } | - | ||||||||||||||||||||||||
1493 | } | - | ||||||||||||||||||||||||
1494 | } never executed: end of block | 0 | ||||||||||||||||||||||||
1495 | static char ** | - | ||||||||||||||||||||||||
1496 | makeargv(const char *arg, int *argcp, int sloppy, char *lastquote, | - | ||||||||||||||||||||||||
1497 | u_int *terminated) | - | ||||||||||||||||||||||||
1498 | { | - | ||||||||||||||||||||||||
1499 | int argc, quot; | - | ||||||||||||||||||||||||
1500 | size_t i, j; | - | ||||||||||||||||||||||||
1501 | static char argvs[8192]; | - | ||||||||||||||||||||||||
1502 | static char *argv[128 + 1]; | - | ||||||||||||||||||||||||
1503 | enum { MA_START, MA_SQUOTE, MA_DQUOTE, MA_UNQUOTED } state, q; | - | ||||||||||||||||||||||||
1504 | - | |||||||||||||||||||||||||
1505 | *argcp = argc = 0; | - | ||||||||||||||||||||||||
1506 | if (strlen(arg) > sizeof(argvs) - 1
| 0 | ||||||||||||||||||||||||
1507 | args_too_longs: | - | ||||||||||||||||||||||||
1508 | error("string too long"); | - | ||||||||||||||||||||||||
1509 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
1510 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
1511 | ; never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
1512 | } | - | ||||||||||||||||||||||||
1513 | if (terminated !=
| 0 | ||||||||||||||||||||||||
1514 | ((void *)0)
| 0 | ||||||||||||||||||||||||
1515 | ) | - | ||||||||||||||||||||||||
1516 | * never executed: terminated = 1;*terminated = 1; never executed: *terminated = 1; | 0 | ||||||||||||||||||||||||
1517 | if (lastquote !=
| 0 | ||||||||||||||||||||||||
1518 | ((void *)0)
| 0 | ||||||||||||||||||||||||
1519 | ) | - | ||||||||||||||||||||||||
1520 | * never executed: lastquote = '\0';*lastquote = '\0'; never executed: *lastquote = '\0'; | 0 | ||||||||||||||||||||||||
1521 | state = MA_START; | - | ||||||||||||||||||||||||
1522 | i = j = 0; | - | ||||||||||||||||||||||||
1523 | for (;;) { | - | ||||||||||||||||||||||||
1524 | if ((
| 0 | ||||||||||||||||||||||||
1525 | error("Too many arguments."); | - | ||||||||||||||||||||||||
1526 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
1527 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
1528 | ; never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
1529 | } | - | ||||||||||||||||||||||||
1530 | if ( | - | ||||||||||||||||||||||||
1531 | ((*
| 0 | ||||||||||||||||||||||||
1532 | (unsigned char)arg[i]
| 0 | ||||||||||||||||||||||||
1533 | ))] & (unsigned short int) _ISspace)
| 0 | ||||||||||||||||||||||||
1534 | ) { | - | ||||||||||||||||||||||||
1535 | if (state == MA_UNQUOTED
| 0 | ||||||||||||||||||||||||
1536 | - | |||||||||||||||||||||||||
1537 | argvs[j++] = '\0'; | - | ||||||||||||||||||||||||
1538 | argc++; | - | ||||||||||||||||||||||||
1539 | state = MA_START; | - | ||||||||||||||||||||||||
1540 | } never executed: else if (state != MA_STARTend of block
| 0 | ||||||||||||||||||||||||
1541 | argvs[j++] = arg[i]; never executed: argvs[j++] = arg[i]; | 0 | ||||||||||||||||||||||||
1542 | } never executed: else if (arg[i] == '"'end of block
| 0 | ||||||||||||||||||||||||
1543 | q = arg[i] == '"'
| 0 | ||||||||||||||||||||||||
1544 | if (state == MA_START
| 0 | ||||||||||||||||||||||||
1545 | argv[argc] = argvs + j; | - | ||||||||||||||||||||||||
1546 | state = q; | - | ||||||||||||||||||||||||
1547 | if (lastquote !=
| 0 | ||||||||||||||||||||||||
1548 | ((void *)0)
| 0 | ||||||||||||||||||||||||
1549 | ) | - | ||||||||||||||||||||||||
1550 | * never executed: lastquote = arg[i];*lastquote = arg[i]; never executed: *lastquote = arg[i]; | 0 | ||||||||||||||||||||||||
1551 | } never executed: else if (state == MA_UNQUOTEDend of block
| 0 | ||||||||||||||||||||||||
1552 | state = q; never executed: state = q; | 0 | ||||||||||||||||||||||||
1553 | else if (state == q
| 0 | ||||||||||||||||||||||||
1554 | state = MA_UNQUOTED; never executed: state = MA_UNQUOTED; | 0 | ||||||||||||||||||||||||
1555 | else | - | ||||||||||||||||||||||||
1556 | argvs[j++] = arg[i]; never executed: argvs[j++] = arg[i]; | 0 | ||||||||||||||||||||||||
1557 | } else if (arg[i] == '\\'
| 0 | ||||||||||||||||||||||||
1558 | if (state == MA_SQUOTE
| 0 | ||||||||||||||||||||||||
1559 | quot = state == MA_SQUOTE
| 0 | ||||||||||||||||||||||||
1560 | - | |||||||||||||||||||||||||
1561 | - | |||||||||||||||||||||||||
1562 | if (arg[i + 1] == quot
| 0 | ||||||||||||||||||||||||
1563 | i++; | - | ||||||||||||||||||||||||
1564 | argvs[j++] = arg[i]; | - | ||||||||||||||||||||||||
1565 | } never executed: else if (arg[i + 1] == '?'end of block
| 0 | ||||||||||||||||||||||||
1566 | arg[i + 1] == '['
| 0 | ||||||||||||||||||||||||
1567 | - | |||||||||||||||||||||||||
1568 | - | |||||||||||||||||||||||||
1569 | - | |||||||||||||||||||||||||
1570 | - | |||||||||||||||||||||||||
1571 | - | |||||||||||||||||||||||||
1572 | - | |||||||||||||||||||||||||
1573 | if (j >= sizeof(argvs) - 5
| 0 | ||||||||||||||||||||||||
1574 | goto never executed: args_too_longs;goto args_too_longs; never executed: goto args_too_longs; | 0 | ||||||||||||||||||||||||
1575 | argvs[j++] = '\\'; | - | ||||||||||||||||||||||||
1576 | argvs[j++] = arg[i++]; | - | ||||||||||||||||||||||||
1577 | argvs[j++] = '\\'; | - | ||||||||||||||||||||||||
1578 | argvs[j++] = arg[i]; | - | ||||||||||||||||||||||||
1579 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||
1580 | argvs[j++] = arg[i++]; | - | ||||||||||||||||||||||||
1581 | argvs[j++] = arg[i]; | - | ||||||||||||||||||||||||
1582 | } never executed: end of block | 0 | ||||||||||||||||||||||||
1583 | } else { | - | ||||||||||||||||||||||||
1584 | if (state == MA_START
| 0 | ||||||||||||||||||||||||
1585 | argv[argc] = argvs + j; | - | ||||||||||||||||||||||||
1586 | state = MA_UNQUOTED; | - | ||||||||||||||||||||||||
1587 | if (lastquote !=
| 0 | ||||||||||||||||||||||||
1588 | ((void *)0)
| 0 | ||||||||||||||||||||||||
1589 | ) | - | ||||||||||||||||||||||||
1590 | * never executed: lastquote = '\0';*lastquote = '\0'; never executed: *lastquote = '\0'; | 0 | ||||||||||||||||||||||||
1591 | } never executed: end of block | 0 | ||||||||||||||||||||||||
1592 | if (arg[i + 1] == '?'
| 0 | ||||||||||||||||||||||||
1593 | arg[i + 1] == '*'
| 0 | ||||||||||||||||||||||||
1594 | - | |||||||||||||||||||||||||
1595 | - | |||||||||||||||||||||||||
1596 | - | |||||||||||||||||||||||||
1597 | - | |||||||||||||||||||||||||
1598 | - | |||||||||||||||||||||||||
1599 | - | |||||||||||||||||||||||||
1600 | argvs[j++] = arg[i++]; | - | ||||||||||||||||||||||||
1601 | argvs[j++] = arg[i]; | - | ||||||||||||||||||||||||
1602 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||
1603 | - | |||||||||||||||||||||||||
1604 | - | |||||||||||||||||||||||||
1605 | i++; | - | ||||||||||||||||||||||||
1606 | argvs[j++] = arg[i]; | - | ||||||||||||||||||||||||
1607 | } never executed: end of block | 0 | ||||||||||||||||||||||||
1608 | } | - | ||||||||||||||||||||||||
1609 | } else if (arg[i] == '#'
| 0 | ||||||||||||||||||||||||
1610 | if (state == MA_SQUOTE
| 0 | ||||||||||||||||||||||||
1611 | argvs[j++] = arg[i]; never executed: argvs[j++] = arg[i]; | 0 | ||||||||||||||||||||||||
1612 | else | - | ||||||||||||||||||||||||
1613 | goto never executed: string_done;goto string_done; never executed: goto string_done; | 0 | ||||||||||||||||||||||||
1614 | } else if (arg[i] == '\0'
| 0 | ||||||||||||||||||||||||
1615 | if (state == MA_SQUOTE
| 0 | ||||||||||||||||||||||||
1616 | if (sloppy
| 0 | ||||||||||||||||||||||||
1617 | state = MA_UNQUOTED; | - | ||||||||||||||||||||||||
1618 | if (terminated !=
| 0 | ||||||||||||||||||||||||
1619 | ((void *)0)
| 0 | ||||||||||||||||||||||||
1620 | ) | - | ||||||||||||||||||||||||
1621 | * never executed: terminated = 0;*terminated = 0; never executed: *terminated = 0; | 0 | ||||||||||||||||||||||||
1622 | goto never executed: string_done;goto string_done; never executed: goto string_done; | 0 | ||||||||||||||||||||||||
1623 | } | - | ||||||||||||||||||||||||
1624 | error("Unterminated quoted argument"); | - | ||||||||||||||||||||||||
1625 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
1626 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
1627 | ; never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
1628 | } | - | ||||||||||||||||||||||||
1629 | string_done: code before this statement never executed: string_done: | 0 | ||||||||||||||||||||||||
1630 | if (state == MA_UNQUOTED
| 0 | ||||||||||||||||||||||||
1631 | argvs[j++] = '\0'; | - | ||||||||||||||||||||||||
1632 | argc++; | - | ||||||||||||||||||||||||
1633 | } never executed: end of block | 0 | ||||||||||||||||||||||||
1634 | break; never executed: break; | 0 | ||||||||||||||||||||||||
1635 | } else { | - | ||||||||||||||||||||||||
1636 | if (state == MA_START
| 0 | ||||||||||||||||||||||||
1637 | argv[argc] = argvs + j; | - | ||||||||||||||||||||||||
1638 | state = MA_UNQUOTED; | - | ||||||||||||||||||||||||
1639 | if (lastquote !=
| 0 | ||||||||||||||||||||||||
1640 | ((void *)0)
| 0 | ||||||||||||||||||||||||
1641 | ) | - | ||||||||||||||||||||||||
1642 | * never executed: lastquote = '\0';*lastquote = '\0'; never executed: *lastquote = '\0'; | 0 | ||||||||||||||||||||||||
1643 | } never executed: end of block | 0 | ||||||||||||||||||||||||
1644 | if ((state == MA_SQUOTE
| 0 | ||||||||||||||||||||||||
1645 | (arg[i] == '?'
| 0 | ||||||||||||||||||||||||
1646 | - | |||||||||||||||||||||||||
1647 | - | |||||||||||||||||||||||||
1648 | - | |||||||||||||||||||||||||
1649 | - | |||||||||||||||||||||||||
1650 | - | |||||||||||||||||||||||||
1651 | if (j >= sizeof(argvs) - 3
| 0 | ||||||||||||||||||||||||
1652 | goto never executed: args_too_longs;goto args_too_longs; never executed: goto args_too_longs; | 0 | ||||||||||||||||||||||||
1653 | argvs[j++] = '\\'; | - | ||||||||||||||||||||||||
1654 | argvs[j++] = arg[i]; | - | ||||||||||||||||||||||||
1655 | } never executed: elseend of block | 0 | ||||||||||||||||||||||||
1656 | argvs[j++] = arg[i]; never executed: argvs[j++] = arg[i]; | 0 | ||||||||||||||||||||||||
1657 | } | - | ||||||||||||||||||||||||
1658 | i++; | - | ||||||||||||||||||||||||
1659 | } never executed: end of block | 0 | ||||||||||||||||||||||||
1660 | *argcp = argc; | - | ||||||||||||||||||||||||
1661 | return never executed: argv;return argv; never executed: return argv; | 0 | ||||||||||||||||||||||||
1662 | } | - | ||||||||||||||||||||||||
1663 | - | |||||||||||||||||||||||||
1664 | static int | - | ||||||||||||||||||||||||
1665 | parse_args(const char **cpp, int *ignore_errors, int *aflag, | - | ||||||||||||||||||||||||
1666 | int *fflag, int *hflag, int *iflag, int *lflag, int *pflag, | - | ||||||||||||||||||||||||
1667 | int *rflag, int *sflag, | - | ||||||||||||||||||||||||
1668 | unsigned long *n_arg, char **path1, char **path2) | - | ||||||||||||||||||||||||
1669 | { | - | ||||||||||||||||||||||||
1670 | const char *cmd, *cp = *cpp; | - | ||||||||||||||||||||||||
1671 | char *cp2, **argv; | - | ||||||||||||||||||||||||
1672 | int base = 0; | - | ||||||||||||||||||||||||
1673 | long l; | - | ||||||||||||||||||||||||
1674 | int path1_mandatory = 0, i, cmdnum, optidx, argc; | - | ||||||||||||||||||||||||
1675 | - | |||||||||||||||||||||||||
1676 | - | |||||||||||||||||||||||||
1677 | cp = cp + | - | ||||||||||||||||||||||||
1678 | __builtin_strspn ( | - | ||||||||||||||||||||||||
1679 | cp | - | ||||||||||||||||||||||||
1680 | , | - | ||||||||||||||||||||||||
1681 | " \t\r\n" | - | ||||||||||||||||||||||||
1682 | ) | - | ||||||||||||||||||||||||
1683 | ; | - | ||||||||||||||||||||||||
1684 | - | |||||||||||||||||||||||||
1685 | - | |||||||||||||||||||||||||
1686 | *ignore_errors = 0; | - | ||||||||||||||||||||||||
1687 | if (*
| 0 | ||||||||||||||||||||||||
1688 | *ignore_errors = 1; | - | ||||||||||||||||||||||||
1689 | cp++; | - | ||||||||||||||||||||||||
1690 | cp = cp + | - | ||||||||||||||||||||||||
1691 | __builtin_strspn ( | - | ||||||||||||||||||||||||
1692 | cp | - | ||||||||||||||||||||||||
1693 | , | - | ||||||||||||||||||||||||
1694 | " \t\r\n" | - | ||||||||||||||||||||||||
1695 | ) | - | ||||||||||||||||||||||||
1696 | ; | - | ||||||||||||||||||||||||
1697 | } never executed: end of block | 0 | ||||||||||||||||||||||||
1698 | - | |||||||||||||||||||||||||
1699 | - | |||||||||||||||||||||||||
1700 | if (*
| 0 | ||||||||||||||||||||||||
1701 | return never executed: (0);return (0); never executed: return (0); | 0 | ||||||||||||||||||||||||
1702 | - | |||||||||||||||||||||||||
1703 | if ((
| 0 | ||||||||||||||||||||||||
1704 | ((void *)0)
| 0 | ||||||||||||||||||||||||
1705 | ,
| 0 | ||||||||||||||||||||||||
1706 | ((void *)0)
| 0 | ||||||||||||||||||||||||
1707 | )) ==
| 0 | ||||||||||||||||||||||||
1708 | ((void *)0)
| 0 | ||||||||||||||||||||||||
1709 | ) | - | ||||||||||||||||||||||||
1710 | return never executed: -1;return -1; never executed: return -1; | 0 | ||||||||||||||||||||||||
1711 | - | |||||||||||||||||||||||||
1712 | - | |||||||||||||||||||||||||
1713 | for (i = 0; cmds[i].c !=
| 0 | ||||||||||||||||||||||||
1714 | ((void *)0)
| 0 | ||||||||||||||||||||||||
1715 | ; i++) { | - | ||||||||||||||||||||||||
1716 | if (argv[0] !=
| 0 | ||||||||||||||||||||||||
1717 | ((void *)0)
| 0 | ||||||||||||||||||||||||
1718 | && strcasecmp(cmds[i].c, argv[0]) == 0
| 0 | ||||||||||||||||||||||||
1719 | break; never executed: break; | 0 | ||||||||||||||||||||||||
1720 | } never executed: end of block | 0 | ||||||||||||||||||||||||
1721 | cmdnum = cmds[i].n; | - | ||||||||||||||||||||||||
1722 | cmd = cmds[i].c; | - | ||||||||||||||||||||||||
1723 | - | |||||||||||||||||||||||||
1724 | - | |||||||||||||||||||||||||
1725 | if (*
| 0 | ||||||||||||||||||||||||
1726 | cp++; | - | ||||||||||||||||||||||||
1727 | cmdnum = I_SHELL; | - | ||||||||||||||||||||||||
1728 | } never executed: else if (cmdnum == -1end of block
| 0 | ||||||||||||||||||||||||
1729 | error("Invalid command."); | - | ||||||||||||||||||||||||
1730 | return never executed: -1;return -1; never executed: return -1; | 0 | ||||||||||||||||||||||||
1731 | } | - | ||||||||||||||||||||||||
1732 | - | |||||||||||||||||||||||||
1733 | - | |||||||||||||||||||||||||
1734 | *aflag = *fflag = *hflag = *iflag = *lflag = *pflag = 0; | - | ||||||||||||||||||||||||
1735 | *rflag = *sflag = 0; | - | ||||||||||||||||||||||||
1736 | *path1 = *path2 = | - | ||||||||||||||||||||||||
1737 | ((void *)0) | - | ||||||||||||||||||||||||
1738 | ; | - | ||||||||||||||||||||||||
1739 | optidx = 1; | - | ||||||||||||||||||||||||
1740 | switch (cmdnum) { | - | ||||||||||||||||||||||||
1741 | case never executed: I_GET:case I_GET: never executed: case I_GET: | 0 | ||||||||||||||||||||||||
1742 | case never executed: I_REGET:case I_REGET: never executed: case I_REGET: | 0 | ||||||||||||||||||||||||
1743 | case never executed: I_REPUT:case I_REPUT: never executed: case I_REPUT: | 0 | ||||||||||||||||||||||||
1744 | case never executed: I_PUT:case I_PUT: never executed: case I_PUT: | 0 | ||||||||||||||||||||||||
1745 | if ((
| 0 | ||||||||||||||||||||||||
1746 | aflag, fflag, pflag, rflag)) == -1
| 0 | ||||||||||||||||||||||||
1747 | return never executed: -1;return -1; never executed: return -1; | 0 | ||||||||||||||||||||||||
1748 | - | |||||||||||||||||||||||||
1749 | if (argc - optidx < 1
| 0 | ||||||||||||||||||||||||
1750 | error("You must specify at least one path after a " | - | ||||||||||||||||||||||||
1751 | "%s command.", cmd); | - | ||||||||||||||||||||||||
1752 | return never executed: -1;return -1; never executed: return -1; | 0 | ||||||||||||||||||||||||
1753 | } | - | ||||||||||||||||||||||||
1754 | *path1 = xstrdup(argv[optidx]); | - | ||||||||||||||||||||||||
1755 | - | |||||||||||||||||||||||||
1756 | if (argc - optidx > 1
| 0 | ||||||||||||||||||||||||
1757 | *path2 = xstrdup(argv[optidx + 1]); | - | ||||||||||||||||||||||||
1758 | - | |||||||||||||||||||||||||
1759 | undo_glob_escape(*path2); | - | ||||||||||||||||||||||||
1760 | } never executed: end of block | 0 | ||||||||||||||||||||||||
1761 | break; never executed: break; | 0 | ||||||||||||||||||||||||
1762 | case never executed: I_LINK:case I_LINK: never executed: case I_LINK: | 0 | ||||||||||||||||||||||||
1763 | if ((
| 0 | ||||||||||||||||||||||||
1764 | return never executed: -1;return -1; never executed: return -1; | 0 | ||||||||||||||||||||||||
1765 | goto never executed: parse_two_paths;goto parse_two_paths; never executed: goto parse_two_paths; | 0 | ||||||||||||||||||||||||
1766 | case never executed: I_RENAME:case I_RENAME: never executed: case I_RENAME: | 0 | ||||||||||||||||||||||||
1767 | if ((
| 0 | ||||||||||||||||||||||||
1768 | return never executed: -1;return -1; never executed: return -1; | 0 | ||||||||||||||||||||||||
1769 | goto never executed: parse_two_paths;goto parse_two_paths; never executed: goto parse_two_paths; | 0 | ||||||||||||||||||||||||
1770 | case never executed: I_SYMLINK:case I_SYMLINK: never executed: case I_SYMLINK: | 0 | ||||||||||||||||||||||||
1771 | if ((
| 0 | ||||||||||||||||||||||||
1772 | return never executed: -1;return -1; never executed: return -1; | 0 | ||||||||||||||||||||||||
1773 | parse_two_paths: code before this statement never executed: parse_two_paths: | 0 | ||||||||||||||||||||||||
1774 | if (argc - optidx < 2
| 0 | ||||||||||||||||||||||||
1775 | error("You must specify two paths after a %s " | - | ||||||||||||||||||||||||
1776 | "command.", cmd); | - | ||||||||||||||||||||||||
1777 | return never executed: -1;return -1; never executed: return -1; | 0 | ||||||||||||||||||||||||
1778 | } | - | ||||||||||||||||||||||||
1779 | *path1 = xstrdup(argv[optidx]); | - | ||||||||||||||||||||||||
1780 | *path2 = xstrdup(argv[optidx + 1]); | - | ||||||||||||||||||||||||
1781 | - | |||||||||||||||||||||||||
1782 | undo_glob_escape(*path1); | - | ||||||||||||||||||||||||
1783 | undo_glob_escape(*path2); | - | ||||||||||||||||||||||||
1784 | break; never executed: break; | 0 | ||||||||||||||||||||||||
1785 | case never executed: I_RM:case I_RM: never executed: case I_RM: | 0 | ||||||||||||||||||||||||
1786 | case never executed: I_MKDIR:case I_MKDIR: never executed: case I_MKDIR: | 0 | ||||||||||||||||||||||||
1787 | case never executed: I_RMDIR:case I_RMDIR: never executed: case I_RMDIR: | 0 | ||||||||||||||||||||||||
1788 | case never executed: I_LMKDIR:case I_LMKDIR: never executed: case I_LMKDIR: | 0 | ||||||||||||||||||||||||
1789 | path1_mandatory = 1; | - | ||||||||||||||||||||||||
1790 | - | |||||||||||||||||||||||||
1791 | case never executed: I_CHDIR:case I_CHDIR: never executed: case I_CHDIR: code before this statement never executed: case I_CHDIR: | 0 | ||||||||||||||||||||||||
1792 | case never executed: I_LCHDIR:case I_LCHDIR: never executed: case I_LCHDIR: | 0 | ||||||||||||||||||||||||
1793 | if ((
| 0 | ||||||||||||||||||||||||
1794 | return never executed: -1;return -1; never executed: return -1; | 0 | ||||||||||||||||||||||||
1795 | - | |||||||||||||||||||||||||
1796 | if (argc - optidx < 1
| 0 | ||||||||||||||||||||||||
1797 | if (!path1_mandatory
| 0 | ||||||||||||||||||||||||
1798 | break; never executed: break; | 0 | ||||||||||||||||||||||||
1799 | error("You must specify a path after a %s command.", | - | ||||||||||||||||||||||||
1800 | cmd); | - | ||||||||||||||||||||||||
1801 | return never executed: -1;return -1; never executed: return -1; | 0 | ||||||||||||||||||||||||
1802 | } | - | ||||||||||||||||||||||||
1803 | *path1 = xstrdup(argv[optidx]); | - | ||||||||||||||||||||||||
1804 | - | |||||||||||||||||||||||||
1805 | if (cmdnum != I_RM
| 0 | ||||||||||||||||||||||||
1806 | undo_glob_escape(*path1); never executed: undo_glob_escape(*path1); | 0 | ||||||||||||||||||||||||
1807 | break; never executed: break; | 0 | ||||||||||||||||||||||||
1808 | case never executed: I_DF:case I_DF: never executed: case I_DF: | 0 | ||||||||||||||||||||||||
1809 | if ((
| 0 | ||||||||||||||||||||||||
1810 | iflag)) == -1
| 0 | ||||||||||||||||||||||||
1811 | return never executed: -1;return -1; never executed: return -1; | 0 | ||||||||||||||||||||||||
1812 | - | |||||||||||||||||||||||||
1813 | if (argc - optidx < 1
| 0 | ||||||||||||||||||||||||
1814 | * never executed: path1 = *path1 = ((void *)0) ; never executed: *path1 = ((void *)0) ; | 0 | ||||||||||||||||||||||||
1815 | ((void *)0) never executed: *path1 = ((void *)0) ; | 0 | ||||||||||||||||||||||||
1816 | ; never executed: *path1 = ((void *)0) ; | 0 | ||||||||||||||||||||||||
1817 | else { | - | ||||||||||||||||||||||||
1818 | *path1 = xstrdup(argv[optidx]); | - | ||||||||||||||||||||||||
1819 | undo_glob_escape(*path1); | - | ||||||||||||||||||||||||
1820 | } never executed: end of block | 0 | ||||||||||||||||||||||||
1821 | break; never executed: break; | 0 | ||||||||||||||||||||||||
1822 | case never executed: I_LS:case I_LS: never executed: case I_LS: | 0 | ||||||||||||||||||||||||
1823 | if ((
| 0 | ||||||||||||||||||||||||
1824 | return never executed: (-1);return(-1); never executed: return(-1); | 0 | ||||||||||||||||||||||||
1825 | - | |||||||||||||||||||||||||
1826 | if (argc - optidx > 0
| 0 | ||||||||||||||||||||||||
1827 | * never executed: path1 = xstrdup(argv[optidx]);*path1 = xstrdup(argv[optidx]); never executed: *path1 = xstrdup(argv[optidx]); | 0 | ||||||||||||||||||||||||
1828 | break; never executed: break; | 0 | ||||||||||||||||||||||||
1829 | case never executed: I_LLS:case I_LLS: never executed: case I_LLS: | 0 | ||||||||||||||||||||||||
1830 | - | |||||||||||||||||||||||||
1831 | cp = cp + strlen(cmd) + | - | ||||||||||||||||||||||||
1832 | __builtin_strspn ( | - | ||||||||||||||||||||||||
1833 | cp | - | ||||||||||||||||||||||||
1834 | , | - | ||||||||||||||||||||||||
1835 | " \t\r\n" | - | ||||||||||||||||||||||||
1836 | ) | - | ||||||||||||||||||||||||
1837 | ; | - | ||||||||||||||||||||||||
1838 | case never executed: I_SHELL:case I_SHELL: never executed: case I_SHELL: code before this statement never executed: case I_SHELL: | 0 | ||||||||||||||||||||||||
1839 | - | |||||||||||||||||||||||||
1840 | break; never executed: break; | 0 | ||||||||||||||||||||||||
1841 | case never executed: I_LUMASK:case I_LUMASK: never executed: case I_LUMASK: | 0 | ||||||||||||||||||||||||
1842 | case never executed: I_CHMOD:case I_CHMOD: never executed: case I_CHMOD: | 0 | ||||||||||||||||||||||||
1843 | base = 8; | - | ||||||||||||||||||||||||
1844 | - | |||||||||||||||||||||||||
1845 | case never executed: I_CHOWN:case I_CHOWN: never executed: case I_CHOWN: code before this statement never executed: case I_CHOWN: | 0 | ||||||||||||||||||||||||
1846 | case never executed: I_CHGRP:case I_CHGRP: never executed: case I_CHGRP: | 0 | ||||||||||||||||||||||||
1847 | if ((
| 0 | ||||||||||||||||||||||||
1848 | return never executed: -1;return -1; never executed: return -1; | 0 | ||||||||||||||||||||||||
1849 | - | |||||||||||||||||||||||||
1850 | if (argc - optidx < 1
| 0 | ||||||||||||||||||||||||
1851 | goto never executed: need_num_arg;goto need_num_arg; never executed: goto need_num_arg; | 0 | ||||||||||||||||||||||||
1852 | - | |||||||||||||||||||||||||
1853 | (*__errno_location ()) | - | ||||||||||||||||||||||||
1854 | = 0; | - | ||||||||||||||||||||||||
1855 | l = strtol(argv[optidx], &cp2, base); | - | ||||||||||||||||||||||||
1856 | if (cp2 == argv[optidx]
| 0 | ||||||||||||||||||||||||
1857 | ((l ==
| 0 | ||||||||||||||||||||||||
1858 | (-0x7fffffffffffffffL - 1L)
| 0 | ||||||||||||||||||||||||
1859 | || l == 0x7fffffffffffffffL
| 0 | ||||||||||||||||||||||||
1860 | (*
| 0 | ||||||||||||||||||||||||
1861 | ==
| 0 | ||||||||||||||||||||||||
1862 | 34
| 0 | ||||||||||||||||||||||||
1863 | ) || | - | ||||||||||||||||||||||||
1864 | l < 0
| 0 | ||||||||||||||||||||||||
1865 | need_num_arg: | - | ||||||||||||||||||||||||
1866 | error("You must supply a numeric argument " | - | ||||||||||||||||||||||||
1867 | "to the %s command.", cmd); | - | ||||||||||||||||||||||||
1868 | return never executed: -1;return -1; never executed: return -1; | 0 | ||||||||||||||||||||||||
1869 | } | - | ||||||||||||||||||||||||
1870 | *n_arg = l; | - | ||||||||||||||||||||||||
1871 | if (cmdnum == I_LUMASK
| 0 | ||||||||||||||||||||||||
1872 | break; never executed: break; | 0 | ||||||||||||||||||||||||
1873 | - | |||||||||||||||||||||||||
1874 | if (argc - optidx < 2
| 0 | ||||||||||||||||||||||||
1875 | error("You must specify a path after a %s command.", | - | ||||||||||||||||||||||||
1876 | cmd); | - | ||||||||||||||||||||||||
1877 | return never executed: -1;return -1; never executed: return -1; | 0 | ||||||||||||||||||||||||
1878 | } | - | ||||||||||||||||||||||||
1879 | *path1 = xstrdup(argv[optidx + 1]); | - | ||||||||||||||||||||||||
1880 | break; never executed: break; | 0 | ||||||||||||||||||||||||
1881 | case never executed: I_QUIT:case I_QUIT: never executed: case I_QUIT: | 0 | ||||||||||||||||||||||||
1882 | case never executed: I_PWD:case I_PWD: never executed: case I_PWD: | 0 | ||||||||||||||||||||||||
1883 | case never executed: I_LPWD:case I_LPWD: never executed: case I_LPWD: | 0 | ||||||||||||||||||||||||
1884 | case never executed: I_HELP:case I_HELP: never executed: case I_HELP: | 0 | ||||||||||||||||||||||||
1885 | case never executed: I_VERSION:case I_VERSION: never executed: case I_VERSION: | 0 | ||||||||||||||||||||||||
1886 | case never executed: I_PROGRESS:case I_PROGRESS: never executed: case I_PROGRESS: | 0 | ||||||||||||||||||||||||
1887 | if ((
| 0 | ||||||||||||||||||||||||
1888 | return never executed: -1;return -1; never executed: return -1; | 0 | ||||||||||||||||||||||||
1889 | break; never executed: break; | 0 | ||||||||||||||||||||||||
1890 | default never executed: :default: never executed: default: | 0 | ||||||||||||||||||||||||
1891 | fatal("Command not implemented"); | - | ||||||||||||||||||||||||
1892 | } never executed: end of block | 0 | ||||||||||||||||||||||||
1893 | - | |||||||||||||||||||||||||
1894 | *cpp = cp; | - | ||||||||||||||||||||||||
1895 | return never executed: (cmdnum);return(cmdnum); never executed: return(cmdnum); | 0 | ||||||||||||||||||||||||
1896 | } | - | ||||||||||||||||||||||||
1897 | - | |||||||||||||||||||||||||
1898 | static int | - | ||||||||||||||||||||||||
1899 | parse_dispatch_command(struct sftp_conn *conn, const char *cmd, char **pwd, | - | ||||||||||||||||||||||||
1900 | const char *startdir, int err_abort) | - | ||||||||||||||||||||||||
1901 | { | - | ||||||||||||||||||||||||
1902 | char *path1, *path2, *tmp; | - | ||||||||||||||||||||||||
1903 | int ignore_errors = 0, aflag = 0, fflag = 0, hflag = 0, | - | ||||||||||||||||||||||||
1904 | iflag = 0; | - | ||||||||||||||||||||||||
1905 | int lflag = 0, pflag = 0, rflag = 0, sflag = 0; | - | ||||||||||||||||||||||||
1906 | int cmdnum, i; | - | ||||||||||||||||||||||||
1907 | unsigned long n_arg = 0; | - | ||||||||||||||||||||||||
1908 | Attrib a, *aa; | - | ||||||||||||||||||||||||
1909 | char path_buf[ | - | ||||||||||||||||||||||||
1910 | 4096 | - | ||||||||||||||||||||||||
1911 | ]; | - | ||||||||||||||||||||||||
1912 | int err = 0; | - | ||||||||||||||||||||||||
1913 | _ssh_compat_glob_t g; | - | ||||||||||||||||||||||||
1914 | - | |||||||||||||||||||||||||
1915 | path1 = path2 = | - | ||||||||||||||||||||||||
1916 | ((void *)0) | - | ||||||||||||||||||||||||
1917 | ; | - | ||||||||||||||||||||||||
1918 | cmdnum = parse_args(&cmd, &ignore_errors, &aflag, &fflag, &hflag, | - | ||||||||||||||||||||||||
1919 | &iflag, &lflag, &pflag, &rflag, &sflag, &n_arg, &path1, &path2); | - | ||||||||||||||||||||||||
1920 | if (ignore_errors != 0
| 0 | ||||||||||||||||||||||||
1921 | err_abort = 0; never executed: err_abort = 0; | 0 | ||||||||||||||||||||||||
1922 | - | |||||||||||||||||||||||||
1923 | memset(&g, 0, sizeof(g)); | - | ||||||||||||||||||||||||
1924 | - | |||||||||||||||||||||||||
1925 | - | |||||||||||||||||||||||||
1926 | switch (cmdnum) { | - | ||||||||||||||||||||||||
1927 | case never executed: 0:case 0: never executed: case 0: | 0 | ||||||||||||||||||||||||
1928 | - | |||||||||||||||||||||||||
1929 | break; never executed: break; | 0 | ||||||||||||||||||||||||
1930 | case never executed: -1:case -1: never executed: case -1: | 0 | ||||||||||||||||||||||||
1931 | - | |||||||||||||||||||||||||
1932 | err = -1; | - | ||||||||||||||||||||||||
1933 | break; never executed: break; | 0 | ||||||||||||||||||||||||
1934 | case never executed: I_REGET:case I_REGET: never executed: case I_REGET: | 0 | ||||||||||||||||||||||||
1935 | aflag = 1; | - | ||||||||||||||||||||||||
1936 | - | |||||||||||||||||||||||||
1937 | case never executed: I_GET:case I_GET: never executed: case I_GET: code before this statement never executed: case I_GET: | 0 | ||||||||||||||||||||||||
1938 | err = process_get(conn, path1, path2, *pwd, pflag, | - | ||||||||||||||||||||||||
1939 | rflag, aflag, fflag); | - | ||||||||||||||||||||||||
1940 | break; never executed: break; | 0 | ||||||||||||||||||||||||
1941 | case never executed: I_REPUT:case I_REPUT: never executed: case I_REPUT: | 0 | ||||||||||||||||||||||||
1942 | aflag = 1; | - | ||||||||||||||||||||||||
1943 | - | |||||||||||||||||||||||||
1944 | case never executed: I_PUT:case I_PUT: never executed: case I_PUT: code before this statement never executed: case I_PUT: | 0 | ||||||||||||||||||||||||
1945 | err = process_put(conn, path1, path2, *pwd, pflag, | - | ||||||||||||||||||||||||
1946 | rflag, aflag, fflag); | - | ||||||||||||||||||||||||
1947 | break; never executed: break; | 0 | ||||||||||||||||||||||||
1948 | case never executed: I_RENAME:case I_RENAME: never executed: case I_RENAME: | 0 | ||||||||||||||||||||||||
1949 | path1 = make_absolute(path1, *pwd); | - | ||||||||||||||||||||||||
1950 | path2 = make_absolute(path2, *pwd); | - | ||||||||||||||||||||||||
1951 | err = do_rename(conn, path1, path2, lflag); | - | ||||||||||||||||||||||||
1952 | break; never executed: break; | 0 | ||||||||||||||||||||||||
1953 | case never executed: I_SYMLINK:case I_SYMLINK: never executed: case I_SYMLINK: | 0 | ||||||||||||||||||||||||
1954 | sflag = 1; | - | ||||||||||||||||||||||||
1955 | - | |||||||||||||||||||||||||
1956 | case never executed: I_LINK:case I_LINK: never executed: case I_LINK: code before this statement never executed: case I_LINK: | 0 | ||||||||||||||||||||||||
1957 | if (!sflag
| 0 | ||||||||||||||||||||||||
1958 | path1 = make_absolute(path1, *pwd); never executed: path1 = make_absolute(path1, *pwd); | 0 | ||||||||||||||||||||||||
1959 | path2 = make_absolute(path2, *pwd); | - | ||||||||||||||||||||||||
1960 | err = (sflag
| 0 | ||||||||||||||||||||||||
1961 | break; never executed: break; | 0 | ||||||||||||||||||||||||
1962 | case never executed: I_RM:case I_RM: never executed: case I_RM: | 0 | ||||||||||||||||||||||||
1963 | path1 = make_absolute(path1, *pwd); | - | ||||||||||||||||||||||||
1964 | remote_glob(conn, path1, 0x0010, | - | ||||||||||||||||||||||||
1965 | ((void *)0) | - | ||||||||||||||||||||||||
1966 | , &g); | - | ||||||||||||||||||||||||
1967 | for (i = 0; g.gl_pathv[i]
| 0 | ||||||||||||||||||||||||
1968 | if (!quiet
| 0 | ||||||||||||||||||||||||
1969 | mprintf("Removing %s\n", g.gl_pathv[i]); never executed: mprintf("Removing %s\n", g.gl_pathv[i]); | 0 | ||||||||||||||||||||||||
1970 | err = do_rm(conn, g.gl_pathv[i]); | - | ||||||||||||||||||||||||
1971 | if (err != 0
| 0 | ||||||||||||||||||||||||
1972 | break; never executed: break; | 0 | ||||||||||||||||||||||||
1973 | } never executed: end of block | 0 | ||||||||||||||||||||||||
1974 | break; never executed: break; | 0 | ||||||||||||||||||||||||
1975 | case never executed: I_MKDIR:case I_MKDIR: never executed: case I_MKDIR: | 0 | ||||||||||||||||||||||||
1976 | path1 = make_absolute(path1, *pwd); | - | ||||||||||||||||||||||||
1977 | attrib_clear(&a); | - | ||||||||||||||||||||||||
1978 | a.flags |= 0x00000004; | - | ||||||||||||||||||||||||
1979 | a.perm = 0777; | - | ||||||||||||||||||||||||
1980 | err = do_mkdir(conn, path1, &a, 1); | - | ||||||||||||||||||||||||
1981 | break; never executed: break; | 0 | ||||||||||||||||||||||||
1982 | case never executed: I_RMDIR:case I_RMDIR: never executed: case I_RMDIR: | 0 | ||||||||||||||||||||||||
1983 | path1 = make_absolute(path1, *pwd); | - | ||||||||||||||||||||||||
1984 | err = do_rmdir(conn, path1); | - | ||||||||||||||||||||||||
1985 | break; never executed: break; | 0 | ||||||||||||||||||||||||
1986 | case never executed: I_CHDIR:case I_CHDIR: never executed: case I_CHDIR: | 0 | ||||||||||||||||||||||||
1987 | if (path1 ==
| 0 | ||||||||||||||||||||||||
1988 | ((void *)0)
| 0 | ||||||||||||||||||||||||
1989 | || *
| 0 | ||||||||||||||||||||||||
1990 | path1 = xstrdup(startdir); never executed: path1 = xstrdup(startdir); | 0 | ||||||||||||||||||||||||
1991 | path1 = make_absolute(path1, *pwd); | - | ||||||||||||||||||||||||
1992 | if ((
| 0 | ||||||||||||||||||||||||
1993 | ((void *)0)
| 0 | ||||||||||||||||||||||||
1994 | ) { | - | ||||||||||||||||||||||||
1995 | err = 1; | - | ||||||||||||||||||||||||
1996 | break; never executed: break; | 0 | ||||||||||||||||||||||||
1997 | } | - | ||||||||||||||||||||||||
1998 | if ((
| 0 | ||||||||||||||||||||||||
1999 | ((void *)0)
| 0 | ||||||||||||||||||||||||
2000 | ) { | - | ||||||||||||||||||||||||
2001 | free(tmp); | - | ||||||||||||||||||||||||
2002 | err = 1; | - | ||||||||||||||||||||||||
2003 | break; never executed: break; | 0 | ||||||||||||||||||||||||
2004 | } | - | ||||||||||||||||||||||||
2005 | if (!(aa->flags & 0x00000004)
| 0 | ||||||||||||||||||||||||
2006 | error("Can't change directory: Can't check target"); | - | ||||||||||||||||||||||||
2007 | free(tmp); | - | ||||||||||||||||||||||||
2008 | err = 1; | - | ||||||||||||||||||||||||
2009 | break; never executed: break; | 0 | ||||||||||||||||||||||||
2010 | } | - | ||||||||||||||||||||||||
2011 | if (!
| 0 | ||||||||||||||||||||||||
2012 | ((((
| 0 | ||||||||||||||||||||||||
2013 | aa->perm
| 0 | ||||||||||||||||||||||||
2014 | )) & 0170000) == (0040000))
| 0 | ||||||||||||||||||||||||
2015 | ) { | - | ||||||||||||||||||||||||
2016 | error("Can't change directory: \"%s\" is not " | - | ||||||||||||||||||||||||
2017 | "a directory", tmp); | - | ||||||||||||||||||||||||
2018 | free(tmp); | - | ||||||||||||||||||||||||
2019 | err = 1; | - | ||||||||||||||||||||||||
2020 | break; never executed: break; | 0 | ||||||||||||||||||||||||
2021 | } | - | ||||||||||||||||||||||||
2022 | free(*pwd); | - | ||||||||||||||||||||||||
2023 | *pwd = tmp; | - | ||||||||||||||||||||||||
2024 | break; never executed: break; | 0 | ||||||||||||||||||||||||
2025 | case never executed: I_LS:case I_LS: never executed: case I_LS: | 0 | ||||||||||||||||||||||||
2026 | if (!path1
| 0 | ||||||||||||||||||||||||
2027 | do_ls_dir(conn, *pwd, *pwd, lflag); | - | ||||||||||||||||||||||||
2028 | break; never executed: break; | 0 | ||||||||||||||||||||||||
2029 | } | - | ||||||||||||||||||||||||
2030 | - | |||||||||||||||||||||||||
2031 | - | |||||||||||||||||||||||||
2032 | tmp = | - | ||||||||||||||||||||||||
2033 | ((void *)0) | - | ||||||||||||||||||||||||
2034 | ; | - | ||||||||||||||||||||||||
2035 | if (*
| 0 | ||||||||||||||||||||||||
2036 | tmp = *pwd; never executed: tmp = *pwd; | 0 | ||||||||||||||||||||||||
2037 | - | |||||||||||||||||||||||||
2038 | path1 = make_absolute(path1, *pwd); | - | ||||||||||||||||||||||||
2039 | err = do_globbed_ls(conn, path1, tmp, lflag); | - | ||||||||||||||||||||||||
2040 | break; never executed: break; | 0 | ||||||||||||||||||||||||
2041 | case never executed: I_DF:case I_DF: never executed: case I_DF: | 0 | ||||||||||||||||||||||||
2042 | - | |||||||||||||||||||||||||
2043 | if (path1 ==
| 0 | ||||||||||||||||||||||||
2044 | ((void *)0)
| 0 | ||||||||||||||||||||||||
2045 | ) | - | ||||||||||||||||||||||||
2046 | path1 = xstrdup(*pwd); never executed: path1 = xstrdup(*pwd); | 0 | ||||||||||||||||||||||||
2047 | path1 = make_absolute(path1, *pwd); | - | ||||||||||||||||||||||||
2048 | err = do_df(conn, path1, hflag, iflag); | - | ||||||||||||||||||||||||
2049 | break; never executed: break; | 0 | ||||||||||||||||||||||||
2050 | case never executed: I_LCHDIR:case I_LCHDIR: never executed: case I_LCHDIR: | 0 | ||||||||||||||||||||||||
2051 | if (path1 ==
| 0 | ||||||||||||||||||||||||
2052 | ((void *)0)
| 0 | ||||||||||||||||||||||||
2053 | || *
| 0 | ||||||||||||||||||||||||
2054 | path1 = xstrdup("~"); never executed: path1 = xstrdup("~"); | 0 | ||||||||||||||||||||||||
2055 | tmp = tilde_expand_filename(path1, getuid()); | - | ||||||||||||||||||||||||
2056 | free(path1); | - | ||||||||||||||||||||||||
2057 | path1 = tmp; | - | ||||||||||||||||||||||||
2058 | if (chdir(path1) == -1
| 0 | ||||||||||||||||||||||||
2059 | error("Couldn't change local directory to " | - | ||||||||||||||||||||||||
2060 | "\"%s\": %s", path1, strerror( | - | ||||||||||||||||||||||||
2061 | (*__errno_location ()) | - | ||||||||||||||||||||||||
2062 | )); | - | ||||||||||||||||||||||||
2063 | err = 1; | - | ||||||||||||||||||||||||
2064 | } never executed: end of block | 0 | ||||||||||||||||||||||||
2065 | break; never executed: break; | 0 | ||||||||||||||||||||||||
2066 | case never executed: I_LMKDIR:case I_LMKDIR: never executed: case I_LMKDIR: | 0 | ||||||||||||||||||||||||
2067 | if (mkdir(path1, 0777) == -1
| 0 | ||||||||||||||||||||||||
2068 | error("Couldn't create local directory " | - | ||||||||||||||||||||||||
2069 | "\"%s\": %s", path1, strerror( | - | ||||||||||||||||||||||||
2070 | (*__errno_location ()) | - | ||||||||||||||||||||||||
2071 | )); | - | ||||||||||||||||||||||||
2072 | err = 1; | - | ||||||||||||||||||||||||
2073 | } never executed: end of block | 0 | ||||||||||||||||||||||||
2074 | break; never executed: break; | 0 | ||||||||||||||||||||||||
2075 | case never executed: I_LLS:case I_LLS: never executed: case I_LLS: | 0 | ||||||||||||||||||||||||
2076 | local_do_ls(cmd); | - | ||||||||||||||||||||||||
2077 | break; never executed: break; | 0 | ||||||||||||||||||||||||
2078 | case never executed: I_SHELL:case I_SHELL: never executed: case I_SHELL: | 0 | ||||||||||||||||||||||||
2079 | local_do_shell(cmd); | - | ||||||||||||||||||||||||
2080 | break; never executed: break; | 0 | ||||||||||||||||||||||||
2081 | case never executed: I_LUMASK:case I_LUMASK: never executed: case I_LUMASK: | 0 | ||||||||||||||||||||||||
2082 | umask(n_arg); | - | ||||||||||||||||||||||||
2083 | printf("Local umask: %03lo\n", n_arg); | - | ||||||||||||||||||||||||
2084 | break; never executed: break; | 0 | ||||||||||||||||||||||||
2085 | case never executed: I_CHMOD:case I_CHMOD: never executed: case I_CHMOD: | 0 | ||||||||||||||||||||||||
2086 | path1 = make_absolute(path1, *pwd); | - | ||||||||||||||||||||||||
2087 | attrib_clear(&a); | - | ||||||||||||||||||||||||
2088 | a.flags |= 0x00000004; | - | ||||||||||||||||||||||||
2089 | a.perm = n_arg; | - | ||||||||||||||||||||||||
2090 | remote_glob(conn, path1, 0x0010, | - | ||||||||||||||||||||||||
2091 | ((void *)0) | - | ||||||||||||||||||||||||
2092 | , &g); | - | ||||||||||||||||||||||||
2093 | for (i = 0; g.gl_pathv[i]
| 0 | ||||||||||||||||||||||||
2094 | if (!quiet
| 0 | ||||||||||||||||||||||||
2095 | mprintf("Changing mode on %s\n", never executed: mprintf("Changing mode on %s\n", g.gl_pathv[i]); | 0 | ||||||||||||||||||||||||
2096 | g.gl_pathv[i]); never executed: mprintf("Changing mode on %s\n", g.gl_pathv[i]); | 0 | ||||||||||||||||||||||||
2097 | err = do_setstat(conn, g.gl_pathv[i], &a); | - | ||||||||||||||||||||||||
2098 | if (err != 0
| 0 | ||||||||||||||||||||||||
2099 | break; never executed: break; | 0 | ||||||||||||||||||||||||
2100 | } never executed: end of block | 0 | ||||||||||||||||||||||||
2101 | break; never executed: break; | 0 | ||||||||||||||||||||||||
2102 | case never executed: I_CHOWN:case I_CHOWN: never executed: case I_CHOWN: | 0 | ||||||||||||||||||||||||
2103 | case never executed: I_CHGRP:case I_CHGRP: never executed: case I_CHGRP: | 0 | ||||||||||||||||||||||||
2104 | path1 = make_absolute(path1, *pwd); | - | ||||||||||||||||||||||||
2105 | remote_glob(conn, path1, 0x0010, | - | ||||||||||||||||||||||||
2106 | ((void *)0) | - | ||||||||||||||||||||||||
2107 | , &g); | - | ||||||||||||||||||||||||
2108 | for (i = 0; g.gl_pathv[i]
| 0 | ||||||||||||||||||||||||
2109 | if (!(aa = do_stat(conn, g.gl_pathv[i], 0))
| 0 | ||||||||||||||||||||||||
2110 | if (err_abort
| 0 | ||||||||||||||||||||||||
2111 | err = -1; | - | ||||||||||||||||||||||||
2112 | break; never executed: break; | 0 | ||||||||||||||||||||||||
2113 | } else | - | ||||||||||||||||||||||||
2114 | continue; never executed: continue; | 0 | ||||||||||||||||||||||||
2115 | } | - | ||||||||||||||||||||||||
2116 | if (!(aa->flags & 0x00000002)
| 0 | ||||||||||||||||||||||||
2117 | error("Can't get current ownership of " | - | ||||||||||||||||||||||||
2118 | "remote file \"%s\"", g.gl_pathv[i]); | - | ||||||||||||||||||||||||
2119 | if (err_abort
| 0 | ||||||||||||||||||||||||
2120 | err = -1; | - | ||||||||||||||||||||||||
2121 | break; never executed: break; | 0 | ||||||||||||||||||||||||
2122 | } else | - | ||||||||||||||||||||||||
2123 | continue; never executed: continue; | 0 | ||||||||||||||||||||||||
2124 | } | - | ||||||||||||||||||||||||
2125 | aa->flags &= 0x00000002; | - | ||||||||||||||||||||||||
2126 | if (cmdnum == I_CHOWN
| 0 | ||||||||||||||||||||||||
2127 | if (!quiet
| 0 | ||||||||||||||||||||||||
2128 | mprintf("Changing owner on %s\n", never executed: mprintf("Changing owner on %s\n", g.gl_pathv[i]); | 0 | ||||||||||||||||||||||||
2129 | g.gl_pathv[i]); never executed: mprintf("Changing owner on %s\n", g.gl_pathv[i]); | 0 | ||||||||||||||||||||||||
2130 | aa->uid = n_arg; | - | ||||||||||||||||||||||||
2131 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||
2132 | if (!quiet
| 0 | ||||||||||||||||||||||||
2133 | mprintf("Changing group on %s\n", never executed: mprintf("Changing group on %s\n", g.gl_pathv[i]); | 0 | ||||||||||||||||||||||||
2134 | g.gl_pathv[i]); never executed: mprintf("Changing group on %s\n", g.gl_pathv[i]); | 0 | ||||||||||||||||||||||||
2135 | aa->gid = n_arg; | - | ||||||||||||||||||||||||
2136 | } never executed: end of block | 0 | ||||||||||||||||||||||||
2137 | err = do_setstat(conn, g.gl_pathv[i], aa); | - | ||||||||||||||||||||||||
2138 | if (err != 0
| 0 | ||||||||||||||||||||||||
2139 | break; never executed: break; | 0 | ||||||||||||||||||||||||
2140 | } never executed: end of block | 0 | ||||||||||||||||||||||||
2141 | break; never executed: break; | 0 | ||||||||||||||||||||||||
2142 | case never executed: I_PWD:case I_PWD: never executed: case I_PWD: | 0 | ||||||||||||||||||||||||
2143 | mprintf("Remote working directory: %s\n", *pwd); | - | ||||||||||||||||||||||||
2144 | break; never executed: break; | 0 | ||||||||||||||||||||||||
2145 | case never executed: I_LPWD:case I_LPWD: never executed: case I_LPWD: | 0 | ||||||||||||||||||||||||
2146 | if (!getcwd(path_buf, sizeof(path_buf))
| 0 | ||||||||||||||||||||||||
2147 | error("Couldn't get local cwd: %s", strerror( | - | ||||||||||||||||||||||||
2148 | (*__errno_location ()) | - | ||||||||||||||||||||||||
2149 | )); | - | ||||||||||||||||||||||||
2150 | err = -1; | - | ||||||||||||||||||||||||
2151 | break; never executed: break; | 0 | ||||||||||||||||||||||||
2152 | } | - | ||||||||||||||||||||||||
2153 | mprintf("Local working directory: %s\n", path_buf); | - | ||||||||||||||||||||||||
2154 | break; never executed: break; | 0 | ||||||||||||||||||||||||
2155 | case never executed: I_QUIT:case I_QUIT: never executed: case I_QUIT: | 0 | ||||||||||||||||||||||||
2156 | - | |||||||||||||||||||||||||
2157 | break; never executed: break; | 0 | ||||||||||||||||||||||||
2158 | case never executed: I_HELP:case I_HELP: never executed: case I_HELP: | 0 | ||||||||||||||||||||||||
2159 | help(); | - | ||||||||||||||||||||||||
2160 | break; never executed: break; | 0 | ||||||||||||||||||||||||
2161 | case never executed: I_VERSION:case I_VERSION: never executed: case I_VERSION: | 0 | ||||||||||||||||||||||||
2162 | printf("SFTP protocol version %u\n", sftp_proto_version(conn)); | - | ||||||||||||||||||||||||
2163 | break; never executed: break; | 0 | ||||||||||||||||||||||||
2164 | case never executed: I_PROGRESS:case I_PROGRESS: never executed: case I_PROGRESS: | 0 | ||||||||||||||||||||||||
2165 | showprogress = !showprogress; | - | ||||||||||||||||||||||||
2166 | if (showprogress
| 0 | ||||||||||||||||||||||||
2167 | printf("Progress meter enabled\n"); never executed: printf("Progress meter enabled\n"); | 0 | ||||||||||||||||||||||||
2168 | else | - | ||||||||||||||||||||||||
2169 | printf("Progress meter disabled\n"); never executed: printf("Progress meter disabled\n"); | 0 | ||||||||||||||||||||||||
2170 | break; never executed: break; | 0 | ||||||||||||||||||||||||
2171 | default never executed: :default: never executed: default: | 0 | ||||||||||||||||||||||||
2172 | fatal("%d is not implemented", cmdnum); | - | ||||||||||||||||||||||||
2173 | } never executed: end of block | 0 | ||||||||||||||||||||||||
2174 | - | |||||||||||||||||||||||||
2175 | if (g.gl_pathc
| 0 | ||||||||||||||||||||||||
2176 | _ssh__compat_globfree(&g); never executed: _ssh__compat_globfree(&g); | 0 | ||||||||||||||||||||||||
2177 | free(path1); | - | ||||||||||||||||||||||||
2178 | free(path2); | - | ||||||||||||||||||||||||
2179 | - | |||||||||||||||||||||||||
2180 | - | |||||||||||||||||||||||||
2181 | if (err_abort
| 0 | ||||||||||||||||||||||||
2182 | return never executed: (-1);return (-1); never executed: return (-1); | 0 | ||||||||||||||||||||||||
2183 | else if (cmdnum == I_QUIT
| 0 | ||||||||||||||||||||||||
2184 | return never executed: (1);return (1); never executed: return (1); | 0 | ||||||||||||||||||||||||
2185 | - | |||||||||||||||||||||||||
2186 | return never executed: (0);return (0); never executed: return (0); | 0 | ||||||||||||||||||||||||
2187 | } | - | ||||||||||||||||||||||||
2188 | static int | - | ||||||||||||||||||||||||
2189 | interactive_loop(struct sftp_conn *conn, char *file1, char *file2) | - | ||||||||||||||||||||||||
2190 | { | - | ||||||||||||||||||||||||
2191 | char *remote_path; | - | ||||||||||||||||||||||||
2192 | char *dir = | - | ||||||||||||||||||||||||
2193 | ((void *)0) | - | ||||||||||||||||||||||||
2194 | , *startdir = | - | ||||||||||||||||||||||||
2195 | ((void *)0) | - | ||||||||||||||||||||||||
2196 | ; | - | ||||||||||||||||||||||||
2197 | char cmd[2048]; | - | ||||||||||||||||||||||||
2198 | int err, interactive; | - | ||||||||||||||||||||||||
2199 | EditLine *el = | - | ||||||||||||||||||||||||
2200 | ((void *)0) | - | ||||||||||||||||||||||||
2201 | ; | - | ||||||||||||||||||||||||
2202 | remote_path = do_realpath(conn, "."); | - | ||||||||||||||||||||||||
2203 | if (remote_path ==
| 0 | ||||||||||||||||||||||||
2204 | ((void *)0)
| 0 | ||||||||||||||||||||||||
2205 | ) | - | ||||||||||||||||||||||||
2206 | fatal("Need cwd"); never executed: fatal("Need cwd"); | 0 | ||||||||||||||||||||||||
2207 | startdir = xstrdup(remote_path); | - | ||||||||||||||||||||||||
2208 | - | |||||||||||||||||||||||||
2209 | if (file1 !=
| 0 | ||||||||||||||||||||||||
2210 | ((void *)0)
| 0 | ||||||||||||||||||||||||
2211 | ) { | - | ||||||||||||||||||||||||
2212 | dir = xstrdup(file1); | - | ||||||||||||||||||||||||
2213 | dir = make_absolute(dir, remote_path); | - | ||||||||||||||||||||||||
2214 | - | |||||||||||||||||||||||||
2215 | if (remote_is_dir(conn, dir)
| 0 | ||||||||||||||||||||||||
2216 | ((void *)0)
| 0 | ||||||||||||||||||||||||
2217 | ) { | - | ||||||||||||||||||||||||
2218 | if (!quiet
| 0 | ||||||||||||||||||||||||
2219 | mprintf("Changing to: %s\n", dir); never executed: mprintf("Changing to: %s\n", dir); | 0 | ||||||||||||||||||||||||
2220 | snprintf(cmd, sizeof cmd, "cd \"%s\"", dir); | - | ||||||||||||||||||||||||
2221 | if (parse_dispatch_command(conn, cmd,
| 0 | ||||||||||||||||||||||||
2222 | &remote_path, startdir, 1) != 0
| 0 | ||||||||||||||||||||||||
2223 | free(dir); | - | ||||||||||||||||||||||||
2224 | free(startdir); | - | ||||||||||||||||||||||||
2225 | free(remote_path); | - | ||||||||||||||||||||||||
2226 | free(conn); | - | ||||||||||||||||||||||||
2227 | return never executed: (-1);return (-1); never executed: return (-1); | 0 | ||||||||||||||||||||||||
2228 | } | - | ||||||||||||||||||||||||
2229 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||
2230 | - | |||||||||||||||||||||||||
2231 | snprintf(cmd, sizeof cmd, "get%s %s%s%s", | - | ||||||||||||||||||||||||
2232 | global_aflag ? " -a" : "", dir, | - | ||||||||||||||||||||||||
2233 | file2 == | - | ||||||||||||||||||||||||
2234 | ((void *)0) | - | ||||||||||||||||||||||||
2235 | ? "" : " ", | - | ||||||||||||||||||||||||
2236 | file2 == | - | ||||||||||||||||||||||||
2237 | ((void *)0) | - | ||||||||||||||||||||||||
2238 | ? "" : file2); | - | ||||||||||||||||||||||||
2239 | err = parse_dispatch_command(conn, cmd, | - | ||||||||||||||||||||||||
2240 | &remote_path, startdir, 1); | - | ||||||||||||||||||||||||
2241 | free(dir); | - | ||||||||||||||||||||||||
2242 | free(startdir); | - | ||||||||||||||||||||||||
2243 | free(remote_path); | - | ||||||||||||||||||||||||
2244 | free(conn); | - | ||||||||||||||||||||||||
2245 | return never executed: (err);return (err); never executed: return (err); | 0 | ||||||||||||||||||||||||
2246 | } | - | ||||||||||||||||||||||||
2247 | free(dir); | - | ||||||||||||||||||||||||
2248 | } never executed: end of block | 0 | ||||||||||||||||||||||||
2249 | - | |||||||||||||||||||||||||
2250 | setvbuf( | - | ||||||||||||||||||||||||
2251 | stdout | - | ||||||||||||||||||||||||
2252 | , | - | ||||||||||||||||||||||||
2253 | ((void *)0) | - | ||||||||||||||||||||||||
2254 | , | - | ||||||||||||||||||||||||
2255 | 1 | - | ||||||||||||||||||||||||
2256 | , 0); | - | ||||||||||||||||||||||||
2257 | setvbuf(infile, | - | ||||||||||||||||||||||||
2258 | ((void *)0) | - | ||||||||||||||||||||||||
2259 | , | - | ||||||||||||||||||||||||
2260 | 1 | - | ||||||||||||||||||||||||
2261 | , 0); | - | ||||||||||||||||||||||||
2262 | - | |||||||||||||||||||||||||
2263 | interactive = !batchmode
| 0 | ||||||||||||||||||||||||
2264 | 0
| 0 | ||||||||||||||||||||||||
2265 | )
| 0 | ||||||||||||||||||||||||
2266 | err = 0; | - | ||||||||||||||||||||||||
2267 | for (;;) { | - | ||||||||||||||||||||||||
2268 | char *cp; | - | ||||||||||||||||||||||||
2269 | - | |||||||||||||||||||||||||
2270 | mysignal( | - | ||||||||||||||||||||||||
2271 | 2 | - | ||||||||||||||||||||||||
2272 | , | - | ||||||||||||||||||||||||
2273 | ((__sighandler_t) 1) | - | ||||||||||||||||||||||||
2274 | ); | - | ||||||||||||||||||||||||
2275 | - | |||||||||||||||||||||||||
2276 | if (el ==
| 0 | ||||||||||||||||||||||||
2277 | ((void *)0)
| 0 | ||||||||||||||||||||||||
2278 | ) { | - | ||||||||||||||||||||||||
2279 | if (interactive
| 0 | ||||||||||||||||||||||||
2280 | printf("sftp> "); never executed: printf("sftp> "); | 0 | ||||||||||||||||||||||||
2281 | if (fgets(cmd, sizeof(cmd), infile) ==
| 0 | ||||||||||||||||||||||||
2282 | ((void *)0)
| 0 | ||||||||||||||||||||||||
2283 | ) { | - | ||||||||||||||||||||||||
2284 | if (interactive
| 0 | ||||||||||||||||||||||||
2285 | printf("\n"); never executed: printf("\n"); | 0 | ||||||||||||||||||||||||
2286 | break; never executed: break; | 0 | ||||||||||||||||||||||||
2287 | } | - | ||||||||||||||||||||||||
2288 | if (!interactive
| 0 | ||||||||||||||||||||||||
2289 | mprintf("sftp> %s", cmd); | - | ||||||||||||||||||||||||
2290 | if (strlen(cmd) > 0
| 0 | ||||||||||||||||||||||||
2291 | cmd[strlen(cmd) - 1] != '\n'
| 0 | ||||||||||||||||||||||||
2292 | printf("\n"); never executed: printf("\n"); | 0 | ||||||||||||||||||||||||
2293 | } never executed: end of block | 0 | ||||||||||||||||||||||||
2294 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||
2295 | } never executed: end of block | 0 | ||||||||||||||||||||||||
2296 | - | |||||||||||||||||||||||||
2297 | cp = strrchr(cmd, '\n'); | - | ||||||||||||||||||||||||
2298 | if (cp
| 0 | ||||||||||||||||||||||||
2299 | * never executed: cp = '\0';*cp = '\0'; never executed: *cp = '\0'; | 0 | ||||||||||||||||||||||||
2300 | - | |||||||||||||||||||||||||
2301 | - | |||||||||||||||||||||||||
2302 | interrupted = 0; | - | ||||||||||||||||||||||||
2303 | mysignal( | - | ||||||||||||||||||||||||
2304 | 2 | - | ||||||||||||||||||||||||
2305 | ,cmd_interrupt); | - | ||||||||||||||||||||||||
2306 | - | |||||||||||||||||||||||||
2307 | err = parse_dispatch_command(conn, cmd, &remote_path, | - | ||||||||||||||||||||||||
2308 | startdir, batchmode); | - | ||||||||||||||||||||||||
2309 | if (err != 0
| 0 | ||||||||||||||||||||||||
2310 | break; never executed: break; | 0 | ||||||||||||||||||||||||
2311 | } never executed: end of block | 0 | ||||||||||||||||||||||||
2312 | mysignal( | - | ||||||||||||||||||||||||
2313 | 17 | - | ||||||||||||||||||||||||
2314 | , | - | ||||||||||||||||||||||||
2315 | ((__sighandler_t) 0) | - | ||||||||||||||||||||||||
2316 | ); | - | ||||||||||||||||||||||||
2317 | free(remote_path); | - | ||||||||||||||||||||||||
2318 | free(startdir); | - | ||||||||||||||||||||||||
2319 | free(conn); | - | ||||||||||||||||||||||||
2320 | - | |||||||||||||||||||||||||
2321 | - | |||||||||||||||||||||||||
2322 | - | |||||||||||||||||||||||||
2323 | - | |||||||||||||||||||||||||
2324 | - | |||||||||||||||||||||||||
2325 | - | |||||||||||||||||||||||||
2326 | - | |||||||||||||||||||||||||
2327 | return never executed: (err >= 0return (err >= 0 ? 0 : -1);
never executed: return (err >= 0 ? 0 : -1); | 0 | ||||||||||||||||||||||||
2328 | } | - | ||||||||||||||||||||||||
2329 | - | |||||||||||||||||||||||||
2330 | static void | - | ||||||||||||||||||||||||
2331 | connect_to_server(char *path, char **args, int *in, int *out) | - | ||||||||||||||||||||||||
2332 | { | - | ||||||||||||||||||||||||
2333 | int c_in, c_out; | - | ||||||||||||||||||||||||
2334 | int inout[2]; | - | ||||||||||||||||||||||||
2335 | - | |||||||||||||||||||||||||
2336 | if (socketpair(
| 0 | ||||||||||||||||||||||||
2337 | 1
| 0 | ||||||||||||||||||||||||
2338 | ,
| 0 | ||||||||||||||||||||||||
2339 | SOCK_STREAM
| 0 | ||||||||||||||||||||||||
2340 | , 0, inout) == -1
| 0 | ||||||||||||||||||||||||
2341 | fatal("socketpair: %s", strerror( never executed: fatal("socketpair: %s", strerror( (*__errno_location ()) )); | 0 | ||||||||||||||||||||||||
2342 | (*__errno_location ()) never executed: fatal("socketpair: %s", strerror( (*__errno_location ()) )); | 0 | ||||||||||||||||||||||||
2343 | )); never executed: fatal("socketpair: %s", strerror( (*__errno_location ()) )); | 0 | ||||||||||||||||||||||||
2344 | *in = *out = inout[0]; | - | ||||||||||||||||||||||||
2345 | c_in = c_out = inout[1]; | - | ||||||||||||||||||||||||
2346 | - | |||||||||||||||||||||||||
2347 | - | |||||||||||||||||||||||||
2348 | if ((
| 0 | ||||||||||||||||||||||||
2349 | fatal("fork: %s", strerror( never executed: fatal("fork: %s", strerror( (*__errno_location ()) )); | 0 | ||||||||||||||||||||||||
2350 | (*__errno_location ()) never executed: fatal("fork: %s", strerror( (*__errno_location ()) )); | 0 | ||||||||||||||||||||||||
2351 | )); never executed: fatal("fork: %s", strerror( (*__errno_location ()) )); | 0 | ||||||||||||||||||||||||
2352 | else if (sshpid == 0
| 0 | ||||||||||||||||||||||||
2353 | if ((
| 0 | ||||||||||||||||||||||||
2354 | 0
| 0 | ||||||||||||||||||||||||
2355 | ) == -1)
| 0 | ||||||||||||||||||||||||
2356 | (
| 0 | ||||||||||||||||||||||||
2357 | 1
| 0 | ||||||||||||||||||||||||
2358 | ) == -1)
| 0 | ||||||||||||||||||||||||
2359 | fprintf( | - | ||||||||||||||||||||||||
2360 | stderr | - | ||||||||||||||||||||||||
2361 | , "dup2: %s\n", strerror( | - | ||||||||||||||||||||||||
2362 | (*__errno_location ()) | - | ||||||||||||||||||||||||
2363 | )); | - | ||||||||||||||||||||||||
2364 | _exit(1); | - | ||||||||||||||||||||||||
2365 | } never executed: end of block | 0 | ||||||||||||||||||||||||
2366 | close(*in); | - | ||||||||||||||||||||||||
2367 | close(*out); | - | ||||||||||||||||||||||||
2368 | close(c_in); | - | ||||||||||||||||||||||||
2369 | close(c_out); | - | ||||||||||||||||||||||||
2370 | mysignal( | - | ||||||||||||||||||||||||
2371 | 2 | - | ||||||||||||||||||||||||
2372 | , | - | ||||||||||||||||||||||||
2373 | ((__sighandler_t) 1) | - | ||||||||||||||||||||||||
2374 | ); | - | ||||||||||||||||||||||||
2375 | mysignal( | - | ||||||||||||||||||||||||
2376 | 15 | - | ||||||||||||||||||||||||
2377 | , | - | ||||||||||||||||||||||||
2378 | ((__sighandler_t) 0) | - | ||||||||||||||||||||||||
2379 | ); | - | ||||||||||||||||||||||||
2380 | execvp(path, args); | - | ||||||||||||||||||||||||
2381 | fprintf( | - | ||||||||||||||||||||||||
2382 | stderr | - | ||||||||||||||||||||||||
2383 | , "exec: %s: %s\n", path, strerror( | - | ||||||||||||||||||||||||
2384 | (*__errno_location ()) | - | ||||||||||||||||||||||||
2385 | )); | - | ||||||||||||||||||||||||
2386 | _exit(1); | - | ||||||||||||||||||||||||
2387 | } never executed: end of block | 0 | ||||||||||||||||||||||||
2388 | - | |||||||||||||||||||||||||
2389 | mysignal( | - | ||||||||||||||||||||||||
2390 | 15 | - | ||||||||||||||||||||||||
2391 | ,killchild); | - | ||||||||||||||||||||||||
2392 | mysignal( | - | ||||||||||||||||||||||||
2393 | 2 | - | ||||||||||||||||||||||||
2394 | ,killchild); | - | ||||||||||||||||||||||||
2395 | mysignal( | - | ||||||||||||||||||||||||
2396 | 1 | - | ||||||||||||||||||||||||
2397 | ,killchild); | - | ||||||||||||||||||||||||
2398 | mysignal( | - | ||||||||||||||||||||||||
2399 | 20 | - | ||||||||||||||||||||||||
2400 | ,suspchild); | - | ||||||||||||||||||||||||
2401 | mysignal( | - | ||||||||||||||||||||||||
2402 | 21 | - | ||||||||||||||||||||||||
2403 | ,suspchild); | - | ||||||||||||||||||||||||
2404 | mysignal( | - | ||||||||||||||||||||||||
2405 | 22 | - | ||||||||||||||||||||||||
2406 | ,suspchild); | - | ||||||||||||||||||||||||
2407 | mysignal( | - | ||||||||||||||||||||||||
2408 | 17 | - | ||||||||||||||||||||||||
2409 | ,sigchld_handler); | - | ||||||||||||||||||||||||
2410 | close(c_in); | - | ||||||||||||||||||||||||
2411 | close(c_out); | - | ||||||||||||||||||||||||
2412 | } never executed: end of block | 0 | ||||||||||||||||||||||||
2413 | - | |||||||||||||||||||||||||
2414 | static void | - | ||||||||||||||||||||||||
2415 | usage(void) | - | ||||||||||||||||||||||||
2416 | { | - | ||||||||||||||||||||||||
2417 | extern char *__progname; | - | ||||||||||||||||||||||||
2418 | - | |||||||||||||||||||||||||
2419 | fprintf( | - | ||||||||||||||||||||||||
2420 | stderr | - | ||||||||||||||||||||||||
2421 | , | - | ||||||||||||||||||||||||
2422 | "usage: %s [-46aCfpqrv] [-B buffer_size] [-b batchfile] [-c cipher]\n" | - | ||||||||||||||||||||||||
2423 | " [-D sftp_server_path] [-F ssh_config] " | - | ||||||||||||||||||||||||
2424 | "[-i identity_file] [-l limit]\n" | - | ||||||||||||||||||||||||
2425 | " [-o ssh_option] [-P port] [-R num_requests] " | - | ||||||||||||||||||||||||
2426 | "[-S program]\n" | - | ||||||||||||||||||||||||
2427 | " [-s subsystem | sftp_server] destination\n", | - | ||||||||||||||||||||||||
2428 | __progname); | - | ||||||||||||||||||||||||
2429 | exit(1); never executed: exit(1); | 0 | ||||||||||||||||||||||||
2430 | } | - | ||||||||||||||||||||||||
2431 | - | |||||||||||||||||||||||||
2432 | int | - | ||||||||||||||||||||||||
2433 | main(int argc, char **argv) | - | ||||||||||||||||||||||||
2434 | { | - | ||||||||||||||||||||||||
2435 | int in, out, ch, err, tmp, port = -1; | - | ||||||||||||||||||||||||
2436 | char *host = | - | ||||||||||||||||||||||||
2437 | ((void *)0) | - | ||||||||||||||||||||||||
2438 | , *user, *cp, *file2 = | - | ||||||||||||||||||||||||
2439 | ((void *)0) | - | ||||||||||||||||||||||||
2440 | ; | - | ||||||||||||||||||||||||
2441 | int debug_level = 0, sshver = 2; | - | ||||||||||||||||||||||||
2442 | char *file1 = | - | ||||||||||||||||||||||||
2443 | ((void *)0) | - | ||||||||||||||||||||||||
2444 | , *sftp_server = | - | ||||||||||||||||||||||||
2445 | ((void *)0) | - | ||||||||||||||||||||||||
2446 | ; | - | ||||||||||||||||||||||||
2447 | char *ssh_program = "/var/tmp/openssh-test/bin/ssh", *sftp_direct = | - | ||||||||||||||||||||||||
2448 | ((void *)0) | - | ||||||||||||||||||||||||
2449 | ; | - | ||||||||||||||||||||||||
2450 | const char *errstr; | - | ||||||||||||||||||||||||
2451 | LogLevel ll = SYSLOG_LEVEL_INFO; | - | ||||||||||||||||||||||||
2452 | arglist args; | - | ||||||||||||||||||||||||
2453 | extern int BSDoptind; | - | ||||||||||||||||||||||||
2454 | extern char *BSDoptarg; | - | ||||||||||||||||||||||||
2455 | struct sftp_conn *conn; | - | ||||||||||||||||||||||||
2456 | size_t copy_buffer_len = 32768; | - | ||||||||||||||||||||||||
2457 | size_t num_requests = 64; | - | ||||||||||||||||||||||||
2458 | long long limit_kbps = 0; | - | ||||||||||||||||||||||||
2459 | - | |||||||||||||||||||||||||
2460 | ssh_malloc_init(); | - | ||||||||||||||||||||||||
2461 | - | |||||||||||||||||||||||||
2462 | sanitise_stdfd(); | - | ||||||||||||||||||||||||
2463 | msetlocale(); | - | ||||||||||||||||||||||||
2464 | - | |||||||||||||||||||||||||
2465 | __progname = ssh_get_progname(argv[0]); | - | ||||||||||||||||||||||||
2466 | memset(&args, '\0', sizeof(args)); | - | ||||||||||||||||||||||||
2467 | args.list = | - | ||||||||||||||||||||||||
2468 | ((void *)0) | - | ||||||||||||||||||||||||
2469 | ; | - | ||||||||||||||||||||||||
2470 | addargs(&args, "%s", ssh_program); | - | ||||||||||||||||||||||||
2471 | addargs(&args, "-oForwardX11 no"); | - | ||||||||||||||||||||||||
2472 | addargs(&args, "-oForwardAgent no"); | - | ||||||||||||||||||||||||
2473 | addargs(&args, "-oPermitLocalCommand no"); | - | ||||||||||||||||||||||||
2474 | addargs(&args, "-oClearAllForwardings yes"); | - | ||||||||||||||||||||||||
2475 | - | |||||||||||||||||||||||||
2476 | ll = SYSLOG_LEVEL_INFO; | - | ||||||||||||||||||||||||
2477 | infile = | - | ||||||||||||||||||||||||
2478 | stdin | - | ||||||||||||||||||||||||
2479 | ; | - | ||||||||||||||||||||||||
2480 | - | |||||||||||||||||||||||||
2481 | while ((
| 0 | ||||||||||||||||||||||||
2482 | ) != -1
| 0 | ||||||||||||||||||||||||
2483 | switch (ch) { | - | ||||||||||||||||||||||||
2484 | - | |||||||||||||||||||||||||
2485 | case never executed: '4':case '4': never executed: case '4': | 0 | ||||||||||||||||||||||||
2486 | case never executed: '6':case '6': never executed: case '6': | 0 | ||||||||||||||||||||||||
2487 | case never executed: 'C':case 'C': never executed: case 'C': | 0 | ||||||||||||||||||||||||
2488 | addargs(&args, "-%c", ch); | - | ||||||||||||||||||||||||
2489 | break; never executed: break; | 0 | ||||||||||||||||||||||||
2490 | - | |||||||||||||||||||||||||
2491 | case never executed: 'F':case 'F': never executed: case 'F': | 0 | ||||||||||||||||||||||||
2492 | case never executed: 'c':case 'c': never executed: case 'c': | 0 | ||||||||||||||||||||||||
2493 | case never executed: 'i':case 'i': never executed: case 'i': | 0 | ||||||||||||||||||||||||
2494 | case never executed: 'o':case 'o': never executed: case 'o': | 0 | ||||||||||||||||||||||||
2495 | addargs(&args, "-%c", ch); | - | ||||||||||||||||||||||||
2496 | addargs(&args, "%s", BSDoptarg); | - | ||||||||||||||||||||||||
2497 | break; never executed: break; | 0 | ||||||||||||||||||||||||
2498 | case never executed: 'q':case 'q': never executed: case 'q': | 0 | ||||||||||||||||||||||||
2499 | ll = SYSLOG_LEVEL_ERROR; | - | ||||||||||||||||||||||||
2500 | quiet = 1; | - | ||||||||||||||||||||||||
2501 | showprogress = 0; | - | ||||||||||||||||||||||||
2502 | addargs(&args, "-%c", ch); | - | ||||||||||||||||||||||||
2503 | break; never executed: break; | 0 | ||||||||||||||||||||||||
2504 | case never executed: 'P':case 'P': never executed: case 'P': | 0 | ||||||||||||||||||||||||
2505 | port = a2port(BSDoptarg); | - | ||||||||||||||||||||||||
2506 | if (port <= 0
| 0 | ||||||||||||||||||||||||
2507 | fatal("Bad port \"%s\"\n", BSDoptarg); never executed: fatal("Bad port \"%s\"\n", BSDoptarg); | 0 | ||||||||||||||||||||||||
2508 | break; never executed: break; | 0 | ||||||||||||||||||||||||
2509 | case never executed: 'v':case 'v': never executed: case 'v': | 0 | ||||||||||||||||||||||||
2510 | if (debug_level < 3
| 0 | ||||||||||||||||||||||||
2511 | addargs(&args, "-v"); | - | ||||||||||||||||||||||||
2512 | ll = SYSLOG_LEVEL_DEBUG1 + debug_level; | - | ||||||||||||||||||||||||
2513 | } never executed: end of block | 0 | ||||||||||||||||||||||||
2514 | debug_level++; | - | ||||||||||||||||||||||||
2515 | break; never executed: break; | 0 | ||||||||||||||||||||||||
2516 | case never executed: '1':case '1': never executed: case '1': | 0 | ||||||||||||||||||||||||
2517 | sshver = 1; | - | ||||||||||||||||||||||||
2518 | if (sftp_server ==
| 0 | ||||||||||||||||||||||||
2519 | ((void *)0)
| 0 | ||||||||||||||||||||||||
2520 | ) | - | ||||||||||||||||||||||||
2521 | sftp_server = "/var/tmp/openssh-test/libexec/sftp-server"; never executed: sftp_server = "/var/tmp/openssh-test/libexec/sftp-server"; | 0 | ||||||||||||||||||||||||
2522 | break; never executed: break; | 0 | ||||||||||||||||||||||||
2523 | case never executed: '2':case '2': never executed: case '2': | 0 | ||||||||||||||||||||||||
2524 | sshver = 2; | - | ||||||||||||||||||||||||
2525 | break; never executed: break; | 0 | ||||||||||||||||||||||||
2526 | case never executed: 'a':case 'a': never executed: case 'a': | 0 | ||||||||||||||||||||||||
2527 | global_aflag = 1; | - | ||||||||||||||||||||||||
2528 | break; never executed: break; | 0 | ||||||||||||||||||||||||
2529 | case never executed: 'B':case 'B': never executed: case 'B': | 0 | ||||||||||||||||||||||||
2530 | copy_buffer_len = strtol(BSDoptarg, &cp, 10); | - | ||||||||||||||||||||||||
2531 | if (copy_buffer_len == 0
| 0 | ||||||||||||||||||||||||
2532 | fatal("Invalid buffer size \"%s\"", BSDoptarg); never executed: fatal("Invalid buffer size \"%s\"", BSDoptarg); | 0 | ||||||||||||||||||||||||
2533 | break; never executed: break; | 0 | ||||||||||||||||||||||||
2534 | case never executed: 'b':case 'b': never executed: case 'b': | 0 | ||||||||||||||||||||||||
2535 | if (batchmode
| 0 | ||||||||||||||||||||||||
2536 | fatal("Batch file already specified."); never executed: fatal("Batch file already specified."); | 0 | ||||||||||||||||||||||||
2537 | - | |||||||||||||||||||||||||
2538 | - | |||||||||||||||||||||||||
2539 | if ( | - | ||||||||||||||||||||||||
2540 | __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (
| 0 | ||||||||||||||||||||||||
2541 | BSDoptarg
| 0 | ||||||||||||||||||||||||
2542 | ) && __builtin_constant_p (
| 0 | ||||||||||||||||||||||||
2543 | "-"
| 0 | ||||||||||||||||||||||||
2544 | ) && (__s1_len = __builtin_strlen (
| 0 | ||||||||||||||||||||||||
2545 | BSDoptarg
| 0 | ||||||||||||||||||||||||
2546 | ), __s2_len = __builtin_strlen (
| 0 | ||||||||||||||||||||||||
2547 | "-"
| 0 | ||||||||||||||||||||||||
2548 | ), (!((size_t)(const void *)((
| 0 | ||||||||||||||||||||||||
2549 | BSDoptarg
| 0 | ||||||||||||||||||||||||
2550 | ) + 1) - (size_t)(const void *)(
| 0 | ||||||||||||||||||||||||
2551 | BSDoptarg
| 0 | ||||||||||||||||||||||||
2552 | ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((
| 0 | ||||||||||||||||||||||||
2553 | "-"
| 0 | ||||||||||||||||||||||||
2554 | ) + 1) - (size_t)(const void *)(
| 0 | ||||||||||||||||||||||||
2555 | "-"
| 0 | ||||||||||||||||||||||||
2556 | ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (
| 0 | ||||||||||||||||||||||||
2557 | BSDoptarg
| 0 | ||||||||||||||||||||||||
2558 | ,
| 0 | ||||||||||||||||||||||||
2559 | "-"
| 0 | ||||||||||||||||||||||||
2560 | ) : (__builtin_constant_p (
| 0 | ||||||||||||||||||||||||
2561 | BSDoptarg
| 0 | ||||||||||||||||||||||||
2562 | ) && ((size_t)(const void *)((
| 0 | ||||||||||||||||||||||||
2563 | BSDoptarg
| 0 | ||||||||||||||||||||||||
2564 | ) + 1) - (size_t)(const void *)(
| 0 | ||||||||||||||||||||||||
2565 | BSDoptarg
| 0 | ||||||||||||||||||||||||
2566 | ) == 1) && (__s1_len = __builtin_strlen (
| 0 | ||||||||||||||||||||||||
2567 | BSDoptarg
| 0 | ||||||||||||||||||||||||
2568 | ), __s1_len < 4) ? (__builtin_constant_p (
| 0 | ||||||||||||||||||||||||
2569 | "-"
| 0 | ||||||||||||||||||||||||
2570 | ) && ((size_t)(const void *)((
| 0 | ||||||||||||||||||||||||
2571 | "-"
| 0 | ||||||||||||||||||||||||
2572 | ) + 1) - (size_t)(const void *)(
| 0 | ||||||||||||||||||||||||
2573 | "-"
| 0 | ||||||||||||||||||||||||
2574 | ) == 1) ? __builtin_strcmp (
| 0 | ||||||||||||||||||||||||
2575 | BSDoptarg
| 0 | ||||||||||||||||||||||||
2576 | ,
| 0 | ||||||||||||||||||||||||
2577 | "-"
| 0 | ||||||||||||||||||||||||
2578 | ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
| 0 | ||||||||||||||||||||||||
2579 | "-"
| 0 | ||||||||||||||||||||||||
2580 | ); int __result = (((const unsigned char *) (const char *) (
| 0 | ||||||||||||||||||||||||
2581 | BSDoptarg
| 0 | ||||||||||||||||||||||||
2582 | ))[0] - __s2[0]); if (__s1_len > 0
| 0 | ||||||||||||||||||||||||
2583 | BSDoptarg
| 0 | ||||||||||||||||||||||||
2584 | ))[1] - __s2[1]); if (__s1_len > 1
| 0 | ||||||||||||||||||||||||
2585 | BSDoptarg
| 0 | ||||||||||||||||||||||||
2586 | ))[2] - __s2[2]); if (__s1_len > 2
never executed: __result = (((const unsigned char *) (const char *) ( BSDoptarg ))[3] - __s2[3]); | 0 | ||||||||||||||||||||||||
2587 | BSDoptarg
never executed: __result = (((const unsigned char *) (const char *) ( BSDoptarg ))[3] - __s2[3]); | 0 | ||||||||||||||||||||||||
2588 | ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (
| 0 | ||||||||||||||||||||||||
2589 | "-"
| 0 | ||||||||||||||||||||||||
2590 | ) && ((size_t)(const void *)((
| 0 | ||||||||||||||||||||||||
2591 | "-"
| 0 | ||||||||||||||||||||||||
2592 | ) + 1) - (size_t)(const void *)(
| 0 | ||||||||||||||||||||||||
2593 | "-"
| 0 | ||||||||||||||||||||||||
2594 | ) == 1) && (__s2_len = __builtin_strlen (
| 0 | ||||||||||||||||||||||||
2595 | "-"
| 0 | ||||||||||||||||||||||||
2596 | ), __s2_len < 4) ? (__builtin_constant_p (
| 0 | ||||||||||||||||||||||||
2597 | BSDoptarg
| 0 | ||||||||||||||||||||||||
2598 | ) && ((size_t)(const void *)((
| 0 | ||||||||||||||||||||||||
2599 | BSDoptarg
| 0 | ||||||||||||||||||||||||
2600 | ) + 1) - (size_t)(const void *)(
| 0 | ||||||||||||||||||||||||
2601 | BSDoptarg
| 0 | ||||||||||||||||||||||||
2602 | ) == 1) ? __builtin_strcmp (
| 0 | ||||||||||||||||||||||||
2603 | BSDoptarg
| 0 | ||||||||||||||||||||||||
2604 | ,
| 0 | ||||||||||||||||||||||||
2605 | "-"
| 0 | ||||||||||||||||||||||||
2606 | ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (
| 0 | ||||||||||||||||||||||||
2607 | BSDoptarg
| 0 | ||||||||||||||||||||||||
2608 | ); int __result = (((const unsigned char *) (const char *) (
| 0 | ||||||||||||||||||||||||
2609 | "-"
| 0 | ||||||||||||||||||||||||
2610 | ))[0] - __s2[0]); if (__s2_len > 0
| 0 | ||||||||||||||||||||||||
2611 | "-"
| 0 | ||||||||||||||||||||||||
2612 | ))[1] - __s2[1]); if (__s2_len > 1
| 0 | ||||||||||||||||||||||||
2613 | "-"
| 0 | ||||||||||||||||||||||||
2614 | ))[2] - __s2[2]); if (__s2_len > 2
never executed: __result = (((const unsigned char *) (const char *) ( "-" ))[3] - __s2[3]); | 0 | ||||||||||||||||||||||||
2615 | "-"
never executed: __result = (((const unsigned char *) (const char *) ( "-" ))[3] - __s2[3]); | 0 | ||||||||||||||||||||||||
2616 | ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (
| 0 | ||||||||||||||||||||||||
2617 | BSDoptarg
| 0 | ||||||||||||||||||||||||
2618 | ,
| 0 | ||||||||||||||||||||||||
2619 | "-"
| 0 | ||||||||||||||||||||||||
2620 | )))); })
| 0 | ||||||||||||||||||||||||
2621 | != 0
| 0 | ||||||||||||||||||||||||
2622 | (
| 0 | ||||||||||||||||||||||||
2623 | ((void *)0)
| 0 | ||||||||||||||||||||||||
2624 | ) | - | ||||||||||||||||||||||||
2625 | fatal("%s (%s).", strerror( never executed: fatal("%s (%s).", strerror( (*__errno_location ()) ), BSDoptarg); | 0 | ||||||||||||||||||||||||
2626 | (*__errno_location ()) never executed: fatal("%s (%s).", strerror( (*__errno_location ()) ), BSDoptarg); | 0 | ||||||||||||||||||||||||
2627 | ), BSDoptarg); never executed: fatal("%s (%s).", strerror( (*__errno_location ()) ), BSDoptarg); | 0 | ||||||||||||||||||||||||
2628 | showprogress = 0; | - | ||||||||||||||||||||||||
2629 | quiet = batchmode = 1; | - | ||||||||||||||||||||||||
2630 | addargs(&args, "-obatchmode yes"); | - | ||||||||||||||||||||||||
2631 | break; never executed: break; | 0 | ||||||||||||||||||||||||
2632 | case never executed: 'f':case 'f': never executed: case 'f': | 0 | ||||||||||||||||||||||||
2633 | global_fflag = 1; | - | ||||||||||||||||||||||||
2634 | break; never executed: break; | 0 | ||||||||||||||||||||||||
2635 | case never executed: 'p':case 'p': never executed: case 'p': | 0 | ||||||||||||||||||||||||
2636 | global_pflag = 1; | - | ||||||||||||||||||||||||
2637 | break; never executed: break; | 0 | ||||||||||||||||||||||||
2638 | case never executed: 'D':case 'D': never executed: case 'D': | 0 | ||||||||||||||||||||||||
2639 | sftp_direct = BSDoptarg; | - | ||||||||||||||||||||||||
2640 | break; never executed: break; | 0 | ||||||||||||||||||||||||
2641 | case never executed: 'l':case 'l': never executed: case 'l': | 0 | ||||||||||||||||||||||||
2642 | limit_kbps = strtonum(BSDoptarg, 1, 100 * 1024 * 1024, | - | ||||||||||||||||||||||||
2643 | &errstr); | - | ||||||||||||||||||||||||
2644 | if (errstr !=
| 0 | ||||||||||||||||||||||||
2645 | ((void *)0)
| 0 | ||||||||||||||||||||||||
2646 | ) | - | ||||||||||||||||||||||||
2647 | usage(); never executed: usage(); | 0 | ||||||||||||||||||||||||
2648 | limit_kbps *= 1024; | - | ||||||||||||||||||||||||
2649 | break; never executed: break; | 0 | ||||||||||||||||||||||||
2650 | case never executed: 'r':case 'r': never executed: case 'r': | 0 | ||||||||||||||||||||||||
2651 | global_rflag = 1; | - | ||||||||||||||||||||||||
2652 | break; never executed: break; | 0 | ||||||||||||||||||||||||
2653 | case never executed: 'R':case 'R': never executed: case 'R': | 0 | ||||||||||||||||||||||||
2654 | num_requests = strtol(BSDoptarg, &cp, 10); | - | ||||||||||||||||||||||||
2655 | if (num_requests == 0
| 0 | ||||||||||||||||||||||||
2656 | fatal("Invalid number of requests \"%s\"", never executed: fatal("Invalid number of requests \"%s\"", BSDoptarg); | 0 | ||||||||||||||||||||||||
2657 | BSDoptarg); never executed: fatal("Invalid number of requests \"%s\"", BSDoptarg); | 0 | ||||||||||||||||||||||||
2658 | break; never executed: break; | 0 | ||||||||||||||||||||||||
2659 | case never executed: 's':case 's': never executed: case 's': | 0 | ||||||||||||||||||||||||
2660 | sftp_server = BSDoptarg; | - | ||||||||||||||||||||||||
2661 | break; never executed: break; | 0 | ||||||||||||||||||||||||
2662 | case never executed: 'S':case 'S': never executed: case 'S': | 0 | ||||||||||||||||||||||||
2663 | ssh_program = BSDoptarg; | - | ||||||||||||||||||||||||
2664 | replacearg(&args, 0, "%s", ssh_program); | - | ||||||||||||||||||||||||
2665 | break; never executed: break; | 0 | ||||||||||||||||||||||||
2666 | case never executed: 'h':case 'h': never executed: case 'h': | 0 | ||||||||||||||||||||||||
2667 | default never executed: :default: never executed: default: | 0 | ||||||||||||||||||||||||
2668 | usage(); | - | ||||||||||||||||||||||||
2669 | } never executed: end of block | 0 | ||||||||||||||||||||||||
2670 | } | - | ||||||||||||||||||||||||
2671 | - | |||||||||||||||||||||||||
2672 | if (!isatty(
| 0 | ||||||||||||||||||||||||
2673 | 2
| 0 | ||||||||||||||||||||||||
2674 | )
| 0 | ||||||||||||||||||||||||
2675 | showprogress = 0; never executed: showprogress = 0; | 0 | ||||||||||||||||||||||||
2676 | - | |||||||||||||||||||||||||
2677 | log_init(argv[0], ll, SYSLOG_FACILITY_USER, 1); | - | ||||||||||||||||||||||||
2678 | - | |||||||||||||||||||||||||
2679 | if (sftp_direct ==
| 0 | ||||||||||||||||||||||||
2680 | ((void *)0)
| 0 | ||||||||||||||||||||||||
2681 | ) { | - | ||||||||||||||||||||||||
2682 | if (BSDoptind == argc
| 0 | ||||||||||||||||||||||||
2683 | usage(); never executed: usage(); | 0 | ||||||||||||||||||||||||
2684 | argv += BSDoptind; | - | ||||||||||||||||||||||||
2685 | - | |||||||||||||||||||||||||
2686 | switch (parse_uri("sftp", *argv, &user, &host, &tmp, &file1)) { | - | ||||||||||||||||||||||||
2687 | case never executed: -1:case -1: never executed: case -1: | 0 | ||||||||||||||||||||||||
2688 | usage(); | - | ||||||||||||||||||||||||
2689 | break; never executed: break; | 0 | ||||||||||||||||||||||||
2690 | case never executed: 0:case 0: never executed: case 0: | 0 | ||||||||||||||||||||||||
2691 | if (tmp != -1
| 0 | ||||||||||||||||||||||||
2692 | port = tmp; never executed: port = tmp; | 0 | ||||||||||||||||||||||||
2693 | break; never executed: break; | 0 | ||||||||||||||||||||||||
2694 | default never executed: :default: never executed: default: | 0 | ||||||||||||||||||||||||
2695 | if (parse_user_host_path(*argv, &user, &host,
| 0 | ||||||||||||||||||||||||
2696 | &file1) == -1
| 0 | ||||||||||||||||||||||||
2697 | - | |||||||||||||||||||||||||
2698 | host = xstrdup(*argv); | - | ||||||||||||||||||||||||
2699 | host = cleanhostname(host); | - | ||||||||||||||||||||||||
2700 | } never executed: end of block | 0 | ||||||||||||||||||||||||
2701 | break; never executed: break; | 0 | ||||||||||||||||||||||||
2702 | } | - | ||||||||||||||||||||||||
2703 | file2 = *(argv + 1); | - | ||||||||||||||||||||||||
2704 | - | |||||||||||||||||||||||||
2705 | if (!*host
| 0 | ||||||||||||||||||||||||
2706 | fprintf( | - | ||||||||||||||||||||||||
2707 | stderr | - | ||||||||||||||||||||||||
2708 | , "Missing hostname\n"); | - | ||||||||||||||||||||||||
2709 | usage(); | - | ||||||||||||||||||||||||
2710 | } never executed: end of block | 0 | ||||||||||||||||||||||||
2711 | - | |||||||||||||||||||||||||
2712 | if (port != -1
| 0 | ||||||||||||||||||||||||
2713 | addargs(&args, "-oPort %d", port); never executed: addargs(&args, "-oPort %d", port); | 0 | ||||||||||||||||||||||||
2714 | if (user !=
| 0 | ||||||||||||||||||||||||
2715 | ((void *)0)
| 0 | ||||||||||||||||||||||||
2716 | ) { | - | ||||||||||||||||||||||||
2717 | addargs(&args, "-l"); | - | ||||||||||||||||||||||||
2718 | addargs(&args, "%s", user); | - | ||||||||||||||||||||||||
2719 | } never executed: end of block | 0 | ||||||||||||||||||||||||
2720 | addargs(&args, "-oProtocol %d", sshver); | - | ||||||||||||||||||||||||
2721 | - | |||||||||||||||||||||||||
2722 | - | |||||||||||||||||||||||||
2723 | if (sftp_server ==
| 0 | ||||||||||||||||||||||||
2724 | ((void *)0)
| 0 | ||||||||||||||||||||||||
2725 | || | - | ||||||||||||||||||||||||
2726 | (
| 0 | ||||||||||||||||||||||||
2727 | '/'
| 0 | ||||||||||||||||||||||||
2728 | )
| 0 | ||||||||||||||||||||||||
2729 | sftp_server
| 0 | ||||||||||||||||||||||||
2730 | )
| 0 | ||||||||||||||||||||||||
2731 | '/'
| 0 | ||||||||||||||||||||||||
2732 | ) == '\0'
| 0 | ||||||||||||||||||||||||
2733 | sftp_server
| 0 | ||||||||||||||||||||||||
2734 | ,
| 0 | ||||||||||||||||||||||||
2735 | '/'
| 0 | ||||||||||||||||||||||||
2736 | ) : __builtin_strchr (
| 0 | ||||||||||||||||||||||||
2737 | sftp_server
| 0 | ||||||||||||||||||||||||
2738 | ,
| 0 | ||||||||||||||||||||||||
2739 | '/'
| 0 | ||||||||||||||||||||||||
2740 | )))
| 0 | ||||||||||||||||||||||||
2741 | ==
| 0 | ||||||||||||||||||||||||
2742 | ((void *)0)
| 0 | ||||||||||||||||||||||||
2743 | ) | - | ||||||||||||||||||||||||
2744 | addargs(&args, "-s"); never executed: addargs(&args, "-s"); | 0 | ||||||||||||||||||||||||
2745 | - | |||||||||||||||||||||||||
2746 | addargs(&args, "--"); | - | ||||||||||||||||||||||||
2747 | addargs(&args, "%s", host); | - | ||||||||||||||||||||||||
2748 | addargs(&args, "%s", (sftp_server != | - | ||||||||||||||||||||||||
2749 | ((void *)0) | - | ||||||||||||||||||||||||
2750 | ? | - | ||||||||||||||||||||||||
2751 | sftp_server : "sftp")); | - | ||||||||||||||||||||||||
2752 | - | |||||||||||||||||||||||||
2753 | connect_to_server(ssh_program, args.list, &in, &out); | - | ||||||||||||||||||||||||
2754 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||
2755 | args.list = | - | ||||||||||||||||||||||||
2756 | ((void *)0) | - | ||||||||||||||||||||||||
2757 | ; | - | ||||||||||||||||||||||||
2758 | addargs(&args, "sftp-server"); | - | ||||||||||||||||||||||||
2759 | - | |||||||||||||||||||||||||
2760 | connect_to_server(sftp_direct, args.list, &in, &out); | - | ||||||||||||||||||||||||
2761 | } never executed: end of block | 0 | ||||||||||||||||||||||||
2762 | freeargs(&args); | - | ||||||||||||||||||||||||
2763 | - | |||||||||||||||||||||||||
2764 | conn = do_init(in, out, copy_buffer_len, num_requests, limit_kbps); | - | ||||||||||||||||||||||||
2765 | if (conn ==
| 0 | ||||||||||||||||||||||||
2766 | ((void *)0)
| 0 | ||||||||||||||||||||||||
2767 | ) | - | ||||||||||||||||||||||||
2768 | fatal("Couldn't initialise connection to server"); never executed: fatal("Couldn't initialise connection to server"); | 0 | ||||||||||||||||||||||||
2769 | - | |||||||||||||||||||||||||
2770 | if (!quiet
| 0 | ||||||||||||||||||||||||
2771 | if (sftp_direct ==
| 0 | ||||||||||||||||||||||||
2772 | ((void *)0)
| 0 | ||||||||||||||||||||||||
2773 | ) | - | ||||||||||||||||||||||||
2774 | fprintf( never executed: fprintf( stderr , "Connected to %s.\n", host); | 0 | ||||||||||||||||||||||||
2775 | stderr never executed: fprintf( stderr , "Connected to %s.\n", host); | 0 | ||||||||||||||||||||||||
2776 | , "Connected to %s.\n", host); never executed: fprintf( stderr , "Connected to %s.\n", host); | 0 | ||||||||||||||||||||||||
2777 | else | - | ||||||||||||||||||||||||
2778 | fprintf( never executed: fprintf( stderr , "Attached to %s.\n", sftp_direct); | 0 | ||||||||||||||||||||||||
2779 | stderr never executed: fprintf( stderr , "Attached to %s.\n", sftp_direct); | 0 | ||||||||||||||||||||||||
2780 | , "Attached to %s.\n", sftp_direct); never executed: fprintf( stderr , "Attached to %s.\n", sftp_direct); | 0 | ||||||||||||||||||||||||
2781 | } | - | ||||||||||||||||||||||||
2782 | - | |||||||||||||||||||||||||
2783 | err = interactive_loop(conn, file1, file2); | - | ||||||||||||||||||||||||
2784 | - | |||||||||||||||||||||||||
2785 | - | |||||||||||||||||||||||||
2786 | shutdown(in, | - | ||||||||||||||||||||||||
2787 | SHUT_RDWR | - | ||||||||||||||||||||||||
2788 | ); | - | ||||||||||||||||||||||||
2789 | shutdown(out, | - | ||||||||||||||||||||||||
2790 | SHUT_RDWR | - | ||||||||||||||||||||||||
2791 | ); | - | ||||||||||||||||||||||||
2792 | - | |||||||||||||||||||||||||
2793 | - | |||||||||||||||||||||||||
2794 | close(in); | - | ||||||||||||||||||||||||
2795 | close(out); | - | ||||||||||||||||||||||||
2796 | if (batchmode
| 0 | ||||||||||||||||||||||||
2797 | fclose(infile); never executed: fclose(infile); | 0 | ||||||||||||||||||||||||
2798 | - | |||||||||||||||||||||||||
2799 | while (waitpid(sshpid,
| 0 | ||||||||||||||||||||||||
2800 | ((void *)0)
| 0 | ||||||||||||||||||||||||
2801 | , 0) == -1
| 0 | ||||||||||||||||||||||||
2802 | if ( | - | ||||||||||||||||||||||||
2803 | (*
| 0 | ||||||||||||||||||||||||
2804 | !=
| 0 | ||||||||||||||||||||||||
2805 | 4
| 0 | ||||||||||||||||||||||||
2806 | ) | - | ||||||||||||||||||||||||
2807 | fatal("Couldn't wait for ssh process: %s", never executed: fatal("Couldn't wait for ssh process: %s", strerror( (*__errno_location ()) )); | 0 | ||||||||||||||||||||||||
2808 | strerror( never executed: fatal("Couldn't wait for ssh process: %s", strerror( (*__errno_location ()) )); | 0 | ||||||||||||||||||||||||
2809 | (*__errno_location ()) never executed: fatal("Couldn't wait for ssh process: %s", strerror( (*__errno_location ()) )); | 0 | ||||||||||||||||||||||||
2810 | )); never executed: fatal("Couldn't wait for ssh process: %s", strerror( (*__errno_location ()) )); | 0 | ||||||||||||||||||||||||
2811 | - | |||||||||||||||||||||||||
2812 | exit(err == 0 ? 0 : 1); never executed: exit(err == 0 ? 0 : 1); | 0 | ||||||||||||||||||||||||
2813 | } | - | ||||||||||||||||||||||||
Switch to Source code | Preprocessed file |