Lines Matching +full:1 +full:ms

8  * 1. Redistributions of source code must retain the above copyright
55 #define ELF_ALIGN(a) ((((a) + align - 1) / align) * align)
64 #define SIZE_UNKNOWN CAST(off_t, -1)
69 toomany(struct magic_set *ms, const char *name, uint16_t num)
71 if (ms->flags & MAGIC_MIME)
72 return 1;
73 if (file_printf(ms, ", too many %s (%u)", name, num) == -1)
74 return -1;
75 return 1;
89 retval.c[0] = tmpval.c[1];
90 retval.c[1] = tmpval.c[0];
109 retval.c[1] = tmpval.c[2];
110 retval.c[2] = tmpval.c[1];
130 retval.c[1] = tmpval.c[6];
135 retval.c[6] = tmpval.c[1];
326 #define OS_STYLE_FREEBSD 1
351 dophn_core(struct magic_set *ms, int clazz, int swap, int fd, off_t off,
362 if (ms->flags & MAGIC_MIME)
366 if (file_printf(ms, ", no program header") == -1)
367 return -1;
371 if (file_printf(ms, ", corrupted program header size") == -1)
372 return -1;
382 if (file_printf(ms,
384 (intmax_t)off) == -1)
385 return -1;
404 if ((bufsize = pread(fd, nbuf, len, offs)) == -1) {
405 if (file_printf(ms, " can't read note section at %jd",
406 (intmax_t)offs) == -1)
407 return -1;
414 offset = donote(ms, nbuf, offset, CAST(size_t, bufsize),
427 do_note_netbsd_version(struct magic_set *ms, int swap, void *v)
433 if (file_printf(ms, ", for NetBSD") == -1)
434 return -1;
453 if (file_printf(ms, " %u.%u", ver_maj, ver_min) == -1)
454 return -1;
460 if (file_printf(ms, ".%u", ver_patch) == -1)
461 return -1;
464 if (file_printf(ms, "Z") == -1)
465 return -1;
468 if (file_printf(ms, "%c", 'A' + ver_rel - 1) == -1)
469 return -1;
476 do_note_freebsd_version(struct magic_set *ms, int swap, void *v)
482 if (file_printf(ms, ", for FreeBSD") == -1)
483 return -1;
512 if (file_printf(ms, " 4.6.2") == -1)
513 return -1;
515 if (file_printf(ms, " %d.%d", desc / 100000,
516 desc / 10000 % 10) == -1)
517 return -1;
519 if (file_printf(ms, ".%d", desc / 1000 % 10) == -1)
520 return -1;
522 if (file_printf(ms, " (%d)", desc) == -1)
523 return -1;
525 if (file_printf(ms, " %d.%d", desc / 100000,
526 desc / 10000 % 10 + desc / 1000 % 10) == -1)
527 return -1;
529 if (file_printf(ms, " (%d)", desc) == -1)
530 return -1;
532 if (file_printf(ms, ".%d", desc / 10 % 10) == -1)
533 return -1;
536 if (file_printf(ms, " %d.%d", desc / 100000,
537 desc / 1000 % 100) == -1)
538 return -1;
541 if (file_printf(ms, " (%d)", desc) == -1)
542 return -1;
544 if (file_printf(ms, ".%d", desc / 10 % 10) == -1)
545 return -1;
553 do_bid_note(struct magic_set *ms, unsigned char *nbuf, uint32_t type,
577 if (file_printf(ms, ", BuildID[%s]=", btype) == -1)
578 return -1;
581 if (file_printf(ms, "%02x", desc[i]) == -1)
582 return -1;
583 return 1;
588 if (file_printf(ms, ", Go BuildID=%s",
590 RCAST(const char *, &nbuf[doff]))) == -1)
591 return -1;
592 return 1;
598 do_os_note(struct magic_set *ms, unsigned char *nbuf, uint32_t type,
606 if (file_printf(ms, ", for SuSE %d.%d", nbuf[doff],
607 nbuf[doff + 1]) == -1)
608 return -1;
609 return 1;
617 if (file_printf(ms, ", for GNU/") == -1)
618 return -1;
621 if (file_printf(ms, "Linux") == -1)
622 return -1;
625 if (file_printf(ms, "Hurd") == -1)
626 return -1;
629 if (file_printf(ms, "Solaris") == -1)
630 return -1;
633 if (file_printf(ms, "kFreeBSD") == -1)
634 return -1;
637 if (file_printf(ms, "kNetBSD") == -1)
638 return -1;
641 if (file_printf(ms, "<unknown>") == -1)
642 return -1;
644 if (file_printf(ms, " %d.%d.%d", elf_getu32(swap, desc[1]),
645 elf_getu32(swap, desc[2]), elf_getu32(swap, desc[3])) == -1)
646 return -1;
647 return 1;
653 if (do_note_netbsd_version(ms, swap, &nbuf[doff]) == -1)
654 return -1;
655 return 1;
661 if (do_note_freebsd_version(ms, swap, &nbuf[doff])
662 == -1)
663 return -1;
664 return 1;
670 if (file_printf(ms, ", for OpenBSD") == -1)
671 return -1;
673 return 1;
680 if (file_printf(ms, ", for DragonFly") == -1)
681 return -1;
684 if (file_printf(ms, " %d.%d.%d", desc / 100000,
685 desc / 10000 % 10, desc % 10000) == -1)
686 return -1;
687 return 1;
696 if (file_printf(ms, ", for Android %d", api_level) == -1)
697 return -1;
705 if (file_printf(ms, ", built by NDK %.64s (%.64s)",
706 &nbuf[doff + 4], &nbuf[doff + 4 + 64]) == -1)
707 return -1;
715 do_pax_note(struct magic_set *ms, unsigned char *nbuf, uint32_t type,
738 if (desc && file_printf(ms, ", PaX: ") == -1)
739 return -1;
742 if (((1 << CAST(int, i)) & desc) == 0)
744 if (file_printf(ms, "%s%s", did++ ? "," : "",
745 pax[i]) == -1)
746 return -1;
748 return 1;
754 do_memtag_note(struct magic_set *ms, unsigned char *nbuf, uint32_t type,
777 if (desc && file_printf(ms, ", Android Memtag: ") == -1)
778 return -1;
781 if (((1 << CAST(int, i)) & desc) == 0)
783 if (file_printf(ms, "%s%s", did++ ? "," : "",
784 memtag[i]) == -1)
785 return -1;
787 return 1;
793 do_core_note(struct magic_set *ms, unsigned char *nbuf, uint32_t type,
801 int os_style = -1;
829 if (os_style != -1 && (*flags & FLAGS_DID_CORE_STYLE) == 0) {
830 if (file_printf(ms, ", %s-style", os_style_names[os_style])
831 == -1)
832 return -1;
845 if (file_printf(ms, ", from '%.31s', pid=%u, uid=%u, "
847 file_printable(ms, sbuf, sizeof(sbuf),
855 elf_getu32(swap, pi.cpi_sigcode)) == -1)
856 return -1;
859 return 1;
871 if (file_printf(ms, ", from '%.80s'", nbuf + doff +
872 argoff) == -1)
873 return -1;
876 if (file_printf(ms, ", pid=%u",
878 doff + pidoff)))) == -1)
879 return -1;
954 for (k = i + 1 ; k < NOFFSETS; k++) {
956 int adjust = 1;
983 while (cp > cname && isspace(cp[-1]))
985 if (file_printf(ms, ", from '%s'",
988 RCAST(char *, cname))) == -1)
989 return -1;
991 return 1;
1004 get_offset_from_virtaddr(struct magic_set *ms, int swap, int clazz, int fd,
1017 if (file_printf(ms,
1019 (intmax_t)off) == -1)
1020 return -1;
1038 get_string_on_virtaddr(struct magic_set *ms,
1048 offset = get_offset_from_virtaddr(ms, swap, clazz, fd, ph_off, ph_num,
1052 (void)file_printf(ms, ", can't read elf string at %jd",
1057 buf[buflen - 1] = '\0';
1072 do_auxv_note(struct magic_set *ms, unsigned char *nbuf, uint32_t type,
1117 file_error(ms, 0, "Too many ELF Auxv elements");
1118 return 1;
1123 is_string = 1;
1127 is_string = 1;
1158 buflen = get_string_on_virtaddr(ms, swap, clazz, fd,
1164 if (file_printf(ms, ", %s: '%s'", tag, buf) == -1)
1165 return -1;
1167 if (file_printf(ms, ", %s: %d", tag,
1168 CAST(int, xauxv_val)) == -1)
1169 return -1;
1172 return 1;
1179 dodynamic(struct magic_set *ms, void *vbuf, size_t offset, size_t size,
1199 *pie = 1;
1200 ms->mode |= 0111;
1202 ms->mode &= ~0111;
1215 donote(struct magic_set *ms, void *vbuf, size_t offset, size_t size,
1254 (void)file_printf(ms, ", bad note name size %#lx",
1260 (void)file_printf(ms, ", bad note description size %#lx",
1285 if (do_os_note(ms, nbuf, xnh_type, swap,
1291 if (do_bid_note(ms, nbuf, xnh_type, swap,
1297 if (do_pax_note(ms, nbuf, xnh_type, swap,
1302 if (do_memtag_note(ms, nbuf, xnh_type, swap,
1308 if (do_core_note(ms, nbuf, xnh_type, swap,
1314 if (do_auxv_note(ms, nbuf, xnh_type, swap,
1344 if (file_printf(ms, ", note=%u", xnh_type) == -1)
1354 file_printf(ms, ", %s: %s", tag,
1407 { AV_386_SSE4_1, "SSE4.1" },
1413 doshn(struct magic_set *ms, int clazz, int swap, int fd, off_t off, int num,
1419 int stripped = 1, has_debug_info = 0;
1428 if (ms->flags & MAGIC_MIME)
1432 if (file_printf(ms, ", no section header") == -1)
1433 return -1;
1437 if (file_printf(ms, ", corrupted section header size") == -1)
1438 return -1;
1445 if (file_printf(ms, ", missing section headers at %jd",
1446 (intmax_t)offs) == -1)
1447 return -1;
1453 if (file_printf(ms, ", too large section header offset %jd",
1454 (intmax_t)name_off) == -1)
1455 return -1;
1462 if ((namesize = pread(fd, name, sizeof(name) - 1, offs))
1463 == -1) {
1464 if (file_printf(ms,
1466 (intmax_t)offs) == -1)
1467 return -1;
1472 has_debug_info = 1;
1478 if (file_printf(ms, ", can't read elf section at %jd",
1479 (intmax_t)off) == -1)
1480 return -1;
1507 if (file_printf(ms,
1513 CAST(uintmax_t, fsize)) == -1)
1514 return -1;
1517 if (xsh_size > ms->elf_shsize_max) {
1518 file_error(ms, errno, "Note section size too "
1520 ms->elf_shsize_max);
1521 return -1;
1524 file_error(ms, errno, "Cannot allocate memory"
1526 return -1;
1532 if (file_printf(ms,
1534 (intmax_t)offs) == -1)
1535 return -1;
1543 noff = donote(ms, nbuf, CAST(size_t, noff),
1566 == CAST(off_t, -1)) {
1567 file_badseek(ms);
1568 return -1;
1583 file_badread(ms);
1584 return -1;
1588 char *p = cbuf + 1;
1594 if (file_printf(ms,
1596 == -1)
1597 return -1;
1600 p += strlen(p) + 1;
1605 if (tag != 1) {
1606 if (file_printf(ms, ", unknown gnu"
1608 == -1)
1609 return -1;
1627 if (file_printf(ms,
1633 == -1)
1634 return -1;
1648 if (file_printf(ms, ", with debug_info") == -1)
1649 return -1;
1651 if (file_printf(ms, ", %sstripped", stripped ? "" : "not ") == -1)
1652 return -1;
1670 if (file_printf(ms, ", uses") == -1)
1671 return -1;
1675 if (file_printf(ms,
1676 " %s", cdp->cd_name) == -1)
1677 return -1;
1683 if (file_printf(ms,
1686 CAST(unsigned long long, cap_hw1)) == -1)
1687 return -1;
1689 if (file_printf(ms,
1691 CAST(unsigned long long, cap_hw1)) == -1)
1692 return -1;
1697 if (file_printf(ms,
1700 : ", not known to use frame pointer") == -1)
1701 return -1;
1705 if (file_printf(ms,
1708 CAST(unsigned long long, cap_sf1)) == -1)
1709 return -1;
1721 dophn_exec(struct magic_set *ms, int clazz, int swap, int fd, off_t off,
1735 if (file_printf(ms, ", no program header") == -1)
1736 return -1;
1740 if (file_printf(ms, ", corrupted program header size") == -1)
1741 return -1;
1750 if (file_printf(ms,
1752 (intmax_t)off) == -1)
1753 return -1;
1764 doread = 1;
1771 if (file_printf(ms,
1773 CAST(unsigned long, align)) == -1)
1774 return -1;
1779 doread = 1;
1795 if (bufsize == -1) {
1796 if (file_printf(ms,
1798 (intmax_t)offs) == -1)
1799 return -1;
1807 dynamic = 1;
1810 ms->mode &= ~0111;
1814 offset = dodynamic(ms, nbuf, offset,
1820 if (ms->flags & MAGIC_MIME)
1826 if (ms->flags & MAGIC_MIME)
1829 nbuf[bufsize - 1] = '\0';
1835 if (ms->flags & MAGIC_MIME)
1845 offset = donote(ms, nbuf, offset,
1853 if (ms->flags & MAGIC_MIME)
1858 if (ms->flags & MAGIC_MIME)
1868 if (file_printf(ms, ", %s linked", linking_style) == -1)
1869 return -1;
1871 if (file_printf(ms, ", interpreter %s", file_printable(ms,
1873 interp, sizeof(interp))) == -1)
1874 return -1;
1880 file_tryelf(struct magic_set *ms, const struct buffer *b)
1899 if (ms->flags & (MAGIC_APPLE|MAGIC_EXTENSION))
1903 * file locations and thus file(1) cannot determine it from easily.
1917 if((lseek(fd, CAST(off_t, 0), SEEK_SET) == CAST(off_t, -1))
1919 fd = file_pipe2file(ms, fd, buf, nbytes);
1921 if (fd == -1) {
1922 file_badread(ms);
1923 return -1;
1933 if (fstat(fd, &st) == -1) {
1934 file_badread(ms);
1935 return -1;
1959 if (file_printf(ms, ", unknown class %d", clazz) == -1)
1960 return -1;