Lines Matching +full:1 +full:ms

9  * 1. Redistributions of source code must retain the above copyright
71 bad_link(struct magic_set *ms, int err, char *buf) in bad_link() argument
73 int mime = ms->flags & MAGIC_MIME; in bad_link()
75 file_printf(ms, "inode/symlink") in bad_link()
76 == -1) in bad_link()
77 return -1; in bad_link()
79 if (ms->flags & MAGIC_ERROR) { in bad_link()
80 file_error(ms, err, in bad_link()
82 return -1; in bad_link()
84 if (file_printf(ms, "broken symbolic link to %s", buf) == -1) in bad_link()
85 return -1; in bad_link()
87 return 1; in bad_link()
91 handle_mime(struct magic_set *ms, int mime, const char *str) in handle_mime() argument
94 if (file_printf(ms, "inode/%s", str) == -1) in handle_mime()
95 return -1; in handle_mime()
96 if ((mime & MAGIC_MIME_ENCODING) && file_printf(ms, in handle_mime()
97 "; charset=") == -1) in handle_mime()
98 return -1; in handle_mime()
100 if ((mime & MAGIC_MIME_ENCODING) && file_printf(ms, "binary") == -1) in handle_mime()
101 return -1; in handle_mime()
106 file_fsmagic(struct magic_set *ms, const char *fn, struct stat *sb) in file_fsmagic() argument
109 int mime = ms->flags & MAGIC_MIME; in file_fsmagic()
110 int silent = ms->flags & (MAGIC_APPLE|MAGIC_EXTENSION); in file_fsmagic()
126 if ((ms->flags & MAGIC_SYMLINK) == 0) in file_fsmagic()
162 if (ms->flags & MAGIC_ERROR) { in file_fsmagic()
163 file_error(ms, errno, "cannot stat `%s'", fn); in file_fsmagic()
164 return -1; in file_fsmagic()
166 if (file_printf(ms, "cannot open `%s' (%s)", in file_fsmagic()
167 fn, strerror(errno)) == -1) in file_fsmagic()
168 return -1; in file_fsmagic()
172 ret = 1; in file_fsmagic()
176 if (file_printf(ms, "%ssetuid", COMMA) == -1) in file_fsmagic()
177 return -1; in file_fsmagic()
181 if (file_printf(ms, "%ssetgid", COMMA) == -1) in file_fsmagic()
182 return -1; in file_fsmagic()
186 if (file_printf(ms, "%ssticky", COMMA) == -1) in file_fsmagic()
187 return -1; in file_fsmagic()
194 if (handle_mime(ms, mime, "directory") == -1) in file_fsmagic()
195 return -1; in file_fsmagic()
197 } else if (file_printf(ms, "%sdirectory", COMMA) == -1) in file_fsmagic()
198 return -1; in file_fsmagic()
207 if ((ms->flags & MAGIC_DEVICES) != 0) { in file_fsmagic()
212 if (handle_mime(ms, mime, "chardevice") == -1) in file_fsmagic()
213 return -1; in file_fsmagic()
218 if (file_printf(ms, "%scharacter special (%d/%d/%d)", in file_fsmagic()
220 dv_subunit(sb->st_rdev)) == -1) in file_fsmagic()
221 return -1; in file_fsmagic()
223 if (file_printf(ms, "%scharacter special (%ld/%ld)", in file_fsmagic()
225 (long)minor(sb->st_rdev)) == -1) in file_fsmagic()
226 return -1; in file_fsmagic()
229 if (file_printf(ms, "%scharacter special", COMMA) == -1) in file_fsmagic()
230 return -1; in file_fsmagic()
242 if ((ms->flags & MAGIC_DEVICES) != 0) { in file_fsmagic()
247 if (handle_mime(ms, mime, "blockdevice") == -1) in file_fsmagic()
248 return -1; in file_fsmagic()
253 if (file_printf(ms, "%sblock special (%d/%d/%d)", in file_fsmagic()
255 dv_subunit(sb->st_rdev)) == -1) in file_fsmagic()
256 return -1; in file_fsmagic()
258 if (file_printf(ms, "%sblock special (%ld/%ld)", in file_fsmagic()
260 (long)minor(sb->st_rdev)) == -1) in file_fsmagic()
261 return -1; in file_fsmagic()
264 if (file_printf(ms, "%sblock special", COMMA) == -1) in file_fsmagic()
265 return -1; in file_fsmagic()
273 if((ms->flags & MAGIC_DEVICES) != 0) in file_fsmagic()
276 if (handle_mime(ms, mime, "fifo") == -1) in file_fsmagic()
277 return -1; in file_fsmagic()
279 } else if (file_printf(ms, "%sfifo (named pipe)", COMMA) == -1) in file_fsmagic()
280 return -1; in file_fsmagic()
286 if (handle_mime(ms, mime, "door") == -1) in file_fsmagic()
287 return -1; in file_fsmagic()
289 } else if (file_printf(ms, "%sdoor", COMMA) == -1) in file_fsmagic()
290 return -1; in file_fsmagic()
295 if ((nch = readlink(fn, buf, BUFSIZ-1)) <= 0) { in file_fsmagic()
296 if (ms->flags & MAGIC_ERROR) { in file_fsmagic()
297 file_error(ms, errno, "unreadable symlink `%s'", in file_fsmagic()
299 return -1; in file_fsmagic()
302 if (handle_mime(ms, mime, "symlink") == -1) in file_fsmagic()
303 return -1; in file_fsmagic()
305 } else if (file_printf(ms, in file_fsmagic()
307 strerror(errno)) == -1) in file_fsmagic()
308 return -1; in file_fsmagic()
321 return bad_link(ms, errno, buf); in file_fsmagic()
325 return bad_link(ms, errno, buf); in file_fsmagic()
333 if (tmp - fn + 1 > BUFSIZ) { in file_fsmagic()
334 if (ms->flags & MAGIC_ERROR) { in file_fsmagic()
335 file_error(ms, 0, in file_fsmagic()
337 return -1; in file_fsmagic()
340 if (handle_mime(ms, mime, in file_fsmagic()
341 "x-path-too-long") == -1) in file_fsmagic()
342 return -1; in file_fsmagic()
344 } else if (file_printf(ms, in file_fsmagic()
346 fn) == -1) in file_fsmagic()
347 return -1; in file_fsmagic()
352 buf2[tmp - fn + 1] = '\0'; in file_fsmagic()
358 return bad_link(ms, errno, buf); in file_fsmagic()
363 if ((ms->flags & MAGIC_SYMLINK) != 0) { in file_fsmagic()
365 ms->flags &= MAGIC_SYMLINK; in file_fsmagic()
366 p = magic_file(ms, buf); in file_fsmagic()
367 ms->flags |= MAGIC_SYMLINK; in file_fsmagic()
369 return -1; in file_fsmagic()
372 if (handle_mime(ms, mime, "symlink") == -1) in file_fsmagic()
373 return -1; in file_fsmagic()
375 } else if (file_printf(ms, "%ssymbolic link to %s", in file_fsmagic()
376 COMMA, buf) == -1) in file_fsmagic()
377 return -1; in file_fsmagic()
385 if (handle_mime(ms, mime, "socket") == -1) in file_fsmagic()
386 return -1; in file_fsmagic()
388 } else if (file_printf(ms, "%ssocket", COMMA) == -1) in file_fsmagic()
389 return -1; in file_fsmagic()
406 if ((ms->flags & MAGIC_DEVICES) == 0 && sb->st_size == 0) { in file_fsmagic()
408 if (handle_mime(ms, mime, "x-empty") == -1) in file_fsmagic()
409 return -1; in file_fsmagic()
411 } else if (file_printf(ms, "%sempty", COMMA) == -1) in file_fsmagic()
412 return -1; in file_fsmagic()
419 file_error(ms, 0, "invalid mode 0%o", sb->st_mode); in file_fsmagic()
420 return -1; in file_fsmagic()
425 if (file_printf(ms, " ") == -1) in file_fsmagic()
426 return -1; in file_fsmagic()
432 if (ret == 1 && silent) in file_fsmagic()