Bug 211837

Summary: POLA violation : SVR4(32bit binaries) does not operate.
Product: Base System Reporter: kenji
Component: kernAssignee: Konstantin Belousov <kib>
Status: Closed FIXED    
Severity: Affects Some People CC: glebius, junchoon
Priority: --- Keywords: regression
Version: 10.3-RELEASE   
Hardware: amd64   
OS: Any   
Attachments:
Description Flags
The binary in question is this
none
Prefer brand with exactly matching interpreter. none

Description kenji 2016-08-14 13:18:14 UTC
In 10.2-RELEASE_amd64(BASE+KERNEL+LIB32+compat4x-i386) the environment
The binaries name="old_program" was operating normally.

# brandelf ./old_program
File './old_program' is of brand 'SVR4' (0)

It is an error in the 10.3-RELEASE after freebsd-update.

# ./old_program
ELF interpreter /usr/libexec/ld-elf.so.1 not found, error 8
Abort

As a result of verifying the update of STABLE/10 to 10.3R from 10.2R
https://svnweb.freebsd.org/base/stable/10/sys/kern/imgact_elf.c?r1=293318&r2=293449
That can be repaired by removing r293499 was found .


cd /usr/src/
patch -p2 -R -i  r293499.diff
make buildkernel
make installkernel
reboot


######### r293449.diff ########################################
--- stable/10/sys/kern/imgact_elf.c	2016/01/07 15:37:17	293318
+++ stable/10/sys/kern/imgact_elf.c	2016/01/09 00:34:48	293449
@@ -986,7 +986,9 @@
 			if (error == 0)
 				have_interp = TRUE;
 		}
-		if (!have_interp && newinterp != NULL) {
+		if (!have_interp && newinterp != NULL &&
+		    (brand_info->interp_path == NULL ||
+		    strcmp(interp, brand_info->interp_path) == 0)) {
 			error = __elfN(load_file)(imgp->proc, newinterp, &addr,
 			    &imgp->entry_addr, sv->sv_pagesize);
 			if (error == 0)
Comment 1 Tomoaki AOKI 2016-08-15 04:14:04 UTC
One additional info.
Thoroughout discussion with Kenji on freebsd-users-jp ML (in Japanese),
I feel the old binary is possibly NOT actually a SVR4 one, but a FreeBSD
binary with lost ELF branding and having unusual brand interpreter path.

 *Cannot confirm as he says the program was given from his customer
  [or supplier] in pre-built binary only.


If I understand properly, default 10.2-RELEASE (amd64) shouldn't have
svr4.ko or built-in support for SVR4 in GENERIC kernel. (Would need
custom kernel or special build option.)

Anyway, any binary stops working within major release lifecycle should be
considered POLA violation, although keeping old behaviour after 11.0 would
need further investigation.
Comment 2 Gleb Smirnoff freebsd_committer freebsd_triage 2017-02-25 07:44:42 UTC
Assigning to author of revision that caused regression.

Note, that there is plan to delete SVR4 support in FreeBSD 12.0, which is expected to be released in 2019.

https://lists.freebsd.org/pipermail/freebsd-current/2017-February/064804.html

Please speak up if you are willing to keep it. This will require your help with maintaining it.
Comment 3 Konstantin Belousov freebsd_committer freebsd_triage 2017-02-25 07:54:24 UTC
(In reply to kenji from comment #0)
Show readelf -a output on the binary.  If possible, provide me with the binary and all required shared libraries.  I do not need to actually run the program to make any use of it, only try to activate the image on exec.
Comment 4 kenji 2017-03-02 10:03:45 UTC
# readelf -a ./old_bin
ELF Header:
  Magic:   7f 45 4c 46 01 01 01 00 46 72 65 65 42 53 44 00
  Class:                             ELF32
  Data:                              2's complement, little endian
  Version:                           1 (current)
  OS/ABI:                            UNIX - System V
  ABI Version:                       70
  Type:                              EXEC (Executable file)
  Machine:                           Intel 80386
  Version:                           0x1
  Entry point address:               0x8048bac
  Start of program headers:          52 (bytes into file)
  Start of section headers:          75176 (bytes into file)
  Flags:                             0x0
  Size of this header:               52 (bytes)
  Size of program headers:           32 (bytes)
  Number of program headers:         5
  Size of section headers:           40 (bytes)
  Number of section headers:         23
  Section header string table index: 20

Section Headers:
  [Nr] Name              Type            Addr     Off    Size   ES Flg Lk Inf Al
  [ 0]                   NULL            00000000 000000 000000 00      0   0  0
  [ 1] .interp           PROGBITS        080480d4 0000d4 000019 00   A  0   0  1
  [ 2] .hash             HASH            080480f0 0000f0 00017c 04   A  3   0  4
  [ 3] .dynsym           DYNSYM          0804826c 00026c 000380 10   A  4   1  4
  [ 4] .dynstr           STRTAB          080485ec 0005ec 0001b7 00   A  0   0  1
  [ 5] .rel.bss          REL             080487a4 0007a4 000018 08   A  3  17  4
  [ 6] .rel.plt          REL             080487bc 0007bc 000148 08   A  3   8  4
  [ 7] .init             PROGBITS        08048904 000904 000006 00  AX  0   0  4
  [ 8] .plt              PROGBITS        0804890c 00090c 0002a0 04  AX  0   0  4
  [ 9] .text             PROGBITS        08048bac 000bac 00f76c 00  AX  0   0  4
  [10] .fini             PROGBITS        08058318 010318 000006 00  AX  0   0  4
  [11] .rodata           PROGBITS        08058320 010320 00196c 00   A  0   0 32
  [12] .data             PROGBITS        0805aca0 011ca0 0003b4 00  WA  0   0 32
  [13] .ctors            PROGBITS        0805b054 012054 000008 00  WA  0   0  4
  [14] .dtors            PROGBITS        0805b05c 01205c 000008 00  WA  0   0  4
  [15] .got              PROGBITS        0805b064 012064 0000b0 04  WA  0   0  4
  [16] .dynamic          DYNAMIC         0805b114 012114 000088 08  WA  4   0  4
  [17] .bss              NOBITS          0805b1a0 0121a0 000d84 00  WA  0   0 32
  [18] .comment          PROGBITS        00000000 0121a0 00023a 00      0   0  1
  [19] .note             NOTE            0000023a 0123da 00012c 00      0   0  1
  [20] .shstrtab         STRTAB          00000000 012506 0000a0 00      0   0  1
  [21] .symtab           SYMTAB          00000000 012940 000c80 10     22  85  4
  [22] .strtab           STRTAB          00000000 0135c0 000644 00      0   0  1
Key to Flags:
  W (write), A (alloc), X (execute), M (merge), S (strings)
  I (info), L (link order), G (group), x (unknown)
  O (extra OS processing required) o (OS specific), p (processor specific)

There are no section groups in this file.

Program Headers:
  Type           Offset   VirtAddr   PhysAddr   FileSiz MemSiz  Flg Align
  PHDR           0x000034 0x08048034 0x08048034 0x000a0 0x000a0 R E 0x4
  INTERP         0x0000d4 0x080480d4 0x080480d4 0x00019 0x00019 R   0x1
      [Requesting program interpreter: /usr/libexec/ld-elf.so.1]
  LOAD           0x000000 0x08048000 0x08048000 0x11c8c 0x11c8c R E 0x1000
  LOAD           0x011ca0 0x0805aca0 0x0805aca0 0x004fc 0x01284 RW  0x1000
  DYNAMIC        0x012114 0x0805b114 0x0805b114 0x00088 0x00088 RW  0x4

 Section to Segment mapping:
  Segment Sections...
   00
   01     .interp
   02     .interp .hash .dynsym .dynstr .rel.bss .rel.plt .init .plt .text .fini .rodata
   03     .data .ctors .dtors .got .dynamic .bss
   04     .dynamic

Dynamic section at offset 0x12114 contains 17 entries:
  Tag        Type                         Name/Value
 0x00000001 (NEEDED)                     Shared library: [libc.so.4]
 0x0000000c (INIT)                       0x8048904
 0x0000000d (FINI)                       0x8058318
 0x00000004 (HASH)                       0x80480f0
 0x00000005 (STRTAB)                     0x80485ec
 0x00000006 (SYMTAB)                     0x804826c
 0x0000000a (STRSZ)                      439 (bytes)
 0x0000000b (SYMENT)                     16 (bytes)
 0x00000015 (DEBUG)                      0x0
 0x00000003 (PLTGOT)                     0x805b064
 0x00000002 (PLTRELSZ)                   328 (bytes)
 0x00000014 (PLTREL)                     REL
 0x00000017 (JMPREL)                     0x80487bc
 0x00000011 (REL)                        0x80487a4
 0x00000012 (RELSZ)                      24 (bytes)
 0x00000013 (RELENT)                     8 (bytes)
 0x00000000 (NULL)                       0x0

Relocation section '.rel.bss' at offset 0x7a4 contains 3 entries:
 Offset     Info    Type            Sym.Value  Sym. Name
0805b1a0  00002005 R_386_COPY        0805b1a0   _DefaultRuneLocale
0805bdf4  00002205 R_386_COPY        0805bdf4   _CurrentRuneLocale
0805bdf8  00000d05 R_386_COPY        0805bdf8   __sF

Relocation section '.rel.plt' at offset 0x7bc contains 41 entries:
 Offset     Info    Type            Sym.Value  Sym. Name
0805b070  00000507 R_386_JUMP_SLOT   0804891c   strcpy
0805b074  00000907 R_386_JUMP_SLOT   0804892c   printf
0805b078  00002607 R_386_JUMP_SLOT   0804893c   memmove
0805b07c  00002507 R_386_JUMP_SLOT   0804894c   getenv
0805b080  00001a07 R_386_JUMP_SLOT   0804895c   fgets
0805b084  00001807 R_386_JUMP_SLOT   0804896c   memcpy
0805b088  00002c07 R_386_JUMP_SLOT   0804897c   creat
0805b08c  00000a07 R_386_JUMP_SLOT   0804898c   malloc
0805b090  00002907 R_386_JUMP_SLOT   0804899c   sleep
0805b094  00001007 R_386_JUMP_SLOT   080489ac   strrchr
0805b098  00000b07 R_386_JUMP_SLOT   080489bc   fprintf
0805b09c  00000c07 R_386_JUMP_SLOT   080489cc   strcat
0805b0a0  00001607 R_386_JUMP_SLOT   080489dc   fseek
0805b0a4  00002b07 R_386_JUMP_SLOT   080489ec   strstr
0805b0a8  00000807 R_386_JUMP_SLOT   080489fc   __error
0805b0ac  00002107 R_386_JUMP_SLOT   08048a0c   ___runetype
0805b0b0  00001b07 R_386_JUMP_SLOT   08048a1c   strncmp
0805b0b4  00000607 R_386_JUMP_SLOT   08048a2c   strncpy
0805b0b8  00001507 R_386_JUMP_SLOT   08048a3c   memcmp
0805b0bc  00002407 R_386_JUMP_SLOT   08048a4c   fdopen
0805b0c0  00001707 R_386_JUMP_SLOT   08048a5c   fread
0805b0c4  00001c07 R_386_JUMP_SLOT   08048a6c   fopen
0805b0c8  00002f07 R_386_JUMP_SLOT   08048a7c   localtime
0805b0cc  00001907 R_386_JUMP_SLOT   08048a8c   memset
0805b0d0  00001d07 R_386_JUMP_SLOT   08048a9c   fclose
0805b0d4  00002e07 R_386_JUMP_SLOT   08048aac   time
0805b0d8  00000e07 R_386_JUMP_SLOT   08048abc   strcmp
0805b0dc  00001e07 R_386_JUMP_SLOT   08048acc   sprintf
0805b0e0  00001307 R_386_JUMP_SLOT   08048adc   atexit
0805b0e4  00002307 R_386_JUMP_SLOT   08048aec   strftime
0805b0e8  00002807 R_386_JUMP_SLOT   08048afc   stat
0805b0ec  00002d07 R_386_JUMP_SLOT   08048b0c   access
0805b0f0  00000f07 R_386_JUMP_SLOT   08048b1c   exit
0805b0f4  00001f07 R_386_JUMP_SLOT   08048b2c   atoi
0805b0f8  00001407 R_386_JUMP_SLOT   08048b3c   strlen
0805b0fc  00003107 R_386_JUMP_SLOT   08048b4c   open
0805b100  00001207 R_386_JUMP_SLOT   08048b5c   strchr
0805b104  00003007 R_386_JUMP_SLOT   08048b6c   fcntl
0805b108  00003207 R_386_JUMP_SLOT   08048b7c   close
0805b10c  00002707 R_386_JUMP_SLOT   08048b8c   ___tolower
0805b110  00000707 R_386_JUMP_SLOT   08048b9c   free

There are no unwind sections in this file.

Symbol table '.dynsym' contains 56 entries:
   Num:    Value  Size Type    Bind   Vis      Ndx Name
     0: 00000000     0 NOTYPE  LOCAL  DEFAULT  UND
     1: 0805b114     0 OBJECT  GLOBAL DEFAULT  ABS _DYNAMIC
     2: 0805b064     0 OBJECT  GLOBAL DEFAULT  ABS _GLOBAL_OFFSET_TABLE_
     3: 08048904     0 FUNC    GLOBAL DEFAULT    7 _init
     4: 08058318     0 FUNC    GLOBAL DEFAULT   10 _fini
     5: 0804891c     0 FUNC    GLOBAL DEFAULT  UND strcpy
     6: 08048a2c    57 FUNC    GLOBAL DEFAULT  UND strncpy
     7: 08048b9c   190 FUNC    GLOBAL DEFAULT  UND free
     8: 080489fc    25 FUNC    WEAK   DEFAULT  UND __error
     9: 0804892c    49 FUNC    GLOBAL DEFAULT  UND printf
    10: 0804898c   258 FUNC    GLOBAL DEFAULT  UND malloc
    11: 080489bc    42 FUNC    GLOBAL DEFAULT  UND fprintf
    12: 080489cc     0 FUNC    GLOBAL DEFAULT  UND strcat
    13: 0805bdf8   264 OBJECT  GLOBAL DEFAULT   17 __sF
    14: 08048abc     0 FUNC    GLOBAL DEFAULT  UND strcmp
    15: 08048b1c    91 FUNC    GLOBAL DEFAULT  UND exit
    16: 080489ac     0 FUNC    GLOBAL DEFAULT  UND strrchr
    17: 0805aca0     4 OBJECT  GLOBAL DEFAULT   12 __progname
    18: 08048b5c     0 FUNC    GLOBAL DEFAULT  UND strchr
    19: 08048adc   112 FUNC    GLOBAL DEFAULT  UND atexit
    20: 08048b3c     0 FUNC    GLOBAL DEFAULT  UND strlen
    21: 08048a3c     0 FUNC    GLOBAL DEFAULT  UND memcmp
    22: 080489dc    41 FUNC    GLOBAL DEFAULT  UND fseek
    23: 08048a5c   249 FUNC    GLOBAL DEFAULT  UND fread
    24: 0804896c     0 FUNC    GLOBAL DEFAULT  UND memcpy
    25: 08048a8c     0 FUNC    GLOBAL DEFAULT  UND memset
    26: 0804895c   332 FUNC    GLOBAL DEFAULT  UND fgets
    27: 08048a1c     0 FUNC    GLOBAL DEFAULT  UND strncmp
    28: 08048a6c   167 FUNC    GLOBAL DEFAULT  UND fopen
    29: 08048a9c   269 FUNC    GLOBAL DEFAULT  UND fclose
    30: 08048acc    88 FUNC    GLOBAL DEFAULT  UND sprintf
    31: 08048b2c    39 FUNC    GLOBAL DEFAULT  UND atoi
    32: 0805b1a0  3156 OBJECT  GLOBAL DEFAULT   17 _DefaultRuneLocale
    33: 08048a0c     7 FUNC    GLOBAL DEFAULT  UND ___runetype
    34: 0805bdf4     4 OBJECT  GLOBAL DEFAULT   17 _CurrentRuneLocale
    35: 08048aec    94 FUNC    GLOBAL DEFAULT  UND strftime
    36: 08048a4c   217 FUNC    GLOBAL DEFAULT  UND fdopen
    37: 0804894c   181 FUNC    GLOBAL DEFAULT  UND getenv
    38: 0804893c     0 FUNC    GLOBAL DEFAULT  UND memmove
    39: 08048b8c     8 FUNC    GLOBAL DEFAULT  UND ___tolower
    40: 08048afc     0 FUNC    WEAK   DEFAULT  UND stat
    41: 0804899c   125 FUNC    WEAK   DEFAULT  UND sleep
    42: 0805bf20     4 OBJECT  GLOBAL DEFAULT   17 environ
    43: 080489ec   109 FUNC    GLOBAL DEFAULT  UND strstr
    44: 0804897c    45 FUNC    WEAK   DEFAULT  UND creat
    45: 08048b0c     0 FUNC    WEAK   DEFAULT  UND access
    46: 08048aac    67 FUNC    GLOBAL DEFAULT  UND time
    47: 08048a7c    57 FUNC    GLOBAL DEFAULT  UND localtime
    48: 08048b6c     0 FUNC    WEAK   DEFAULT  UND fcntl
    49: 08048b4c     0 FUNC    WEAK   DEFAULT  UND open
    50: 08048b7c     0 FUNC    WEAK   DEFAULT  UND close
    51: 08058318     0 OBJECT  GLOBAL DEFAULT  ABS _etext
    52: 0805b19c     0 OBJECT  GLOBAL DEFAULT  ABS _edata
    53: 0805b19c     0 OBJECT  GLOBAL DEFAULT  ABS __bss_start
    54: 0805bf24     0 OBJECT  GLOBAL DEFAULT  ABS _end
    55: 0805bf24     0 OBJECT  GLOBAL DEFAULT  ABS end

Symbol table '.symtab' contains 200 entries:
   Num:    Value  Size Type    Bind   Vis      Ndx Name
     0: 00000000     0 NOTYPE  LOCAL  DEFAULT  UND
     1: 080480d4     0 SECTION LOCAL  DEFAULT    1
     2: 080480f0     0 SECTION LOCAL  DEFAULT    2
     3: 0804826c     0 SECTION LOCAL  DEFAULT    3
     4: 080485ec     0 SECTION LOCAL  DEFAULT    4
     5: 080487a4     0 SECTION LOCAL  DEFAULT    5
     6: 080487bc     0 SECTION LOCAL  DEFAULT    6
     7: 08048904     0 SECTION LOCAL  DEFAULT    7
     8: 0804890c     0 SECTION LOCAL  DEFAULT    8
     9: 08048bac     0 SECTION LOCAL  DEFAULT    9
    10: 08058318     0 SECTION LOCAL  DEFAULT   10
    11: 08058320     0 SECTION LOCAL  DEFAULT   11
    12: 0805aca0     0 SECTION LOCAL  DEFAULT   12
    13: 0805b054     0 SECTION LOCAL  DEFAULT   13
    14: 0805b05c     0 SECTION LOCAL  DEFAULT   14
    15: 0805b064     0 SECTION LOCAL  DEFAULT   15
    16: 0805b114     0 SECTION LOCAL  DEFAULT   16
    17: 0805b1a0     0 SECTION LOCAL  DEFAULT   17
    18: 00000000     0 SECTION LOCAL  DEFAULT   18
    19: 0000023a     0 SECTION LOCAL  DEFAULT   19
    20: 00000000     0 SECTION LOCAL  DEFAULT   20
    21: 00000000     0 SECTION LOCAL  DEFAULT   21
    22: 00000000     0 SECTION LOCAL  DEFAULT   22
    23: 00000000     0 FILE    LOCAL  DEFAULT  ABS shoplast.c
    24: 08048c90     0 NOTYPE  LOCAL  DEFAULT    9 gcc2_compiled.
    25: 0805acc0    33 OBJECT  LOCAL  DEFAULT   12 sccsid
    26: 0805ad00    37 OBJECT  LOCAL  DEFAULT   12 _T__TRACE_sccsid
    27: 00000000     0 FILE    LOCAL  DEFAULT  ABS inc_com.c
    28: 080490ac     0 NOTYPE  LOCAL  DEFAULT    9 gcc2_compiled.
    29: 0805ad40    32 OBJECT  LOCAL  DEFAULT   12 sccsid
    30: 0805ad60    37 OBJECT  LOCAL  DEFAULT   12 _T__TRACE_sccsid
    31: 0804adb8    71 FUNC    LOCAL  DEFAULT    9 __tolower
    32: 0804ad74    65 FUNC    LOCAL  DEFAULT    9 __isctype
    33: 0804ad24    80 FUNC    LOCAL  DEFAULT    9 __maskrune
    34: 00000000     0 FILE    LOCAL  DEFAULT  ABS inc_dconv.c
    35: 0804ae00     0 NOTYPE  LOCAL  DEFAULT    9 gcc2_compiled.
    36: 0805ada0    32 OBJECT  LOCAL  DEFAULT   12 sccsid
    37: 0805adc0    37 OBJECT  LOCAL  DEFAULT   12 _T__TRACE_sccsid
    38: 0805ade5     2 OBJECT  LOCAL  DEFAULT   12 SP_SJIS.18
    39: 0805ade7     2 OBJECT  LOCAL  DEFAULT   12 SP_EUC.19
    40: 00000000     0 FILE    LOCAL  DEFAULT  ABS inc_errlog.c
    41: 0804b710     0 NOTYPE  LOCAL  DEFAULT    9 gcc2_compiled.
    42: 0805ae00    33 OBJECT  LOCAL  DEFAULT   12 sccsid
    43: 0805ae40    37 OBJECT  LOCAL  DEFAULT   12 _T__TRACE_sccsid
    44: 00000000     0 FILE    LOCAL  DEFAULT  ABS cm_flock.c
    45: 0804ba7c     0 NOTYPE  LOCAL  DEFAULT    9 gcc2_compiled.
    46: 0805ae80    31 OBJECT  LOCAL  DEFAULT   12 sccsid
    47: 00000000     0 FILE    LOCAL  DEFAULT  ABS cryptlib.c
    48: 0804be44     0 NOTYPE  LOCAL  DEFAULT    9 gcc2_compiled.
    49: 0804be44   319 FUNC    LOCAL  DEFAULT    9 makeDesKey
    50: 0804bf84   193 FUNC    LOCAL  DEFAULT    9 setB2t
    51: 0804c048    47 FUNC    LOCAL  DEFAULT    9 setupCryptLib
    52: 0804c078    86 FUNC    LOCAL  DEFAULT    9 setHash
    53: 0804c0d0   250 FUNC    LOCAL  DEFAULT    9 doDes
    54: 0804c1cc    26 FUNC    LOCAL  DEFAULT    9 b2t
    55: 0804c1e8   390 FUNC    LOCAL  DEFAULT    9 BinToText
    56: 0804c370    70 FUNC    LOCAL  DEFAULT    9 t2b
    57: 0804c3b8   329 FUNC    LOCAL  DEFAULT    9 TextToBin
    58: 0805aee4    96 OBJECT  LOCAL  DEFAULT   12 szTxtSample
    59: 0804c504   421 FUNC    LOCAL  DEFAULT    9 TxtDecompBlock
    60: 0804c6ac   282 FUNC    LOCAL  DEFAULT    9 TxtDecomp
    61: 0804c7c8   426 FUNC    LOCAL  DEFAULT    9 TxtCompBlock
    62: 0804c974   410 FUNC    LOCAL  DEFAULT    9 TxtComp
    63: 00000000     0 FILE    LOCAL  DEFAULT  ABS ecb3_enc.c
    64: 0804cea4     0 NOTYPE  LOCAL  DEFAULT    9 gcc2_compiled.
    65: 00000000     0 FILE    LOCAL  DEFAULT  ABS readkey.c
    66: 0804cfbc     0 NOTYPE  LOCAL  DEFAULT    9 gcc2_compiled.
    67: 0805af44    13 OBJECT  LOCAL  DEFAULT   12 szKeyFile
    68: 00000000     0 FILE    LOCAL  DEFAULT  ABS set_key.c
    69: 0804d0cc     0 NOTYPE  LOCAL  DEFAULT    9 gcc2_compiled.
    70: 08058ac0   256 OBJECT  LOCAL  DEFAULT   11 odd_parity
    71: 08058bc0  2048 OBJECT  LOCAL  DEFAULT   11 des_skb
    72: 0804d10c    81 FUNC    LOCAL  DEFAULT    9 check_parity
    73: 0805af80   128 OBJECT  LOCAL  DEFAULT   12 weak_keys
    74: 0805b000    64 OBJECT  LOCAL  DEFAULT   12 shifts2.15
    75: 00000000     0 FILE    LOCAL  DEFAULT  ABS sha1dgst.c
    76: 0804d5b0     0 NOTYPE  LOCAL  DEFAULT    9 gcc2_compiled.
    77: 0804db08 11581 FUNC    LOCAL  DEFAULT    9 sha1_block
    78: 0805b044     4 OBJECT  LOCAL  DEFAULT   12 end.15
    79: 00000000     0 FILE    LOCAL  DEFAULT  ABS des_enc.c
    80: 08050a7c     0 NOTYPE  LOCAL  DEFAULT    9 gcc2_compiled.
    81: 00000000     0 FILE    LOCAL  DEFAULT  ABS ecb_enc.c
    82: 080581c8     0 NOTYPE  LOCAL  DEFAULT    9 gcc2_compiled.
    83: 0805b050     4 OBJECT  LOCAL  DEFAULT   12 init.6
    84: 0805bf00    32 OBJECT  LOCAL  DEFAULT   17 buf.7
    85: 0804b710   678 FUNC    GLOBAL DEFAULT    9 inc_errlog
    86: 0804891c     0 FUNC    GLOBAL DEFAULT  UND strcpy
    87: 08054414 15115 FUNC    GLOBAL DEFAULT    9 des_encrypt2
    88: 0804ae00   234 FUNC    GLOBAL DEFAULT    9 spcdown
    89: 08049948    24 FUNC    GLOBAL DEFAULT    9 printHeader
    90: 0804a5fc   318 FUNC    GLOBAL DEFAULT    9 txtocsv
    91: 0804892c    49 FUNC    GLOBAL DEFAULT  UND printf
    92: 08049748   154 FUNC    GLOBAL DEFAULT    9 stringSearch
    93: 08058074   340 FUNC    GLOBAL DEFAULT    9 des_decrypt3
    94: 0804d160    90 FUNC    GLOBAL DEFAULT    9 des_is_weak_key
    95: 0804cb10   458 FUNC    GLOBAL DEFAULT    9 getCipherParameter
    96: 0804a794    46 FUNC    GLOBAL DEFAULT    9 hexToChar
    97: 0804893c     0 FUNC    GLOBAL DEFAULT  UND memmove
    98: 0804a73c    86 FUNC    GLOBAL DEFAULT    9 bbasename
    99: 0805b114     0 OBJECT  GLOBAL DEFAULT  ABS _DYNAMIC
   100: 0804894c   181 FUNC    GLOBAL DEFAULT  UND getenv
   101: 0804ac18   268 FUNC    GLOBAL DEFAULT    9 cm_comma_edit
   102: 08058318     0 OBJECT  GLOBAL DEFAULT  ABS _etext
   103: 08049f4c    70 FUNC    GLOBAL DEFAULT    9 getSysDate
   104: 0804bd10   306 FUNC    GLOBAL DEFAULT    9 cm_flock3
   105: 0804895c   332 FUNC    GLOBAL DEFAULT  UND fgets
   106: 08049efc    77 FUNC    GLOBAL DEFAULT    9 outputErrorUrl2
   107: 0804896c     0 FUNC    GLOBAL DEFAULT  UND memcpy
   108: 0804d5b0    84 FUNC    GLOBAL DEFAULT    9 SHA1_Init
   109: 0804897c    45 FUNC    WEAK   DEFAULT  UND creat
   110: 0804898c   258 FUNC    GLOBAL DEFAULT  UND malloc
   111: 0804899c   125 FUNC    WEAK   DEFAULT  UND sleep
   112: 0804a43c   446 FUNC    GLOBAL DEFAULT    9 strcsv
   113: 0805b04c     4 OBJECT  GLOBAL DEFAULT   12 DES_version
   114: 0804bbb0    42 FUNC    GLOBAL DEFAULT    9 cm_funlock
   115: 08049cf4    54 FUNC    GLOBAL DEFAULT    9 checkParamText
   116: 0804d604  1281 FUNC    GLOBAL DEFAULT    9 SHA1_Update
   117: 080497e4   354 FUNC    GLOBAL DEFAULT    9 stringReplace
   118: 0804b9b8   194 FUNC    GLOBAL DEFAULT    9 checkErrlog
   119: 0805aea0    65 OBJECT  GLOBAL DEFAULT   12 b2tOrg
   120: 0804cfbc   270 FUNC    GLOBAL DEFAULT    9 getCipherKey
   121: 08050848   561 FUNC    GLOBAL DEFAULT    9 SHA1_Final
   122: 08057f20   340 FUNC    GLOBAL DEFAULT    9 des_encrypt3
   123: 08048904     0 FUNC    GLOBAL DEFAULT    7 _init
   124: 0805b1a0  3156 OBJECT  GLOBAL DEFAULT   17 _DefaultRuneLocale
   125: 0804cea4   280 FUNC    GLOBAL DEFAULT    9 des_ecb3_encrypt
   126: 080489ac     0 FUNC    GLOBAL DEFAULT  UND strrchr
   127: 0804bbdc   306 FUNC    GLOBAL DEFAULT    9 cm_flock2
   128: 0804a7c4   221 FUNC    GLOBAL DEFAULT    9 encode
   129: 0805bf20     4 OBJECT  GLOBAL DEFAULT   17 environ
   130: 080489bc    42 FUNC    GLOBAL DEFAULT  UND fprintf
   131: 0804ccdc   454 FUNC    GLOBAL DEFAULT    9 getDecodeParameter
   132: 080489cc     0 FUNC    GLOBAL DEFAULT  UND strcat
   133: 0804d0cc    62 FUNC    GLOBAL DEFAULT    9 des_set_odd_parity
   134: 0805bf24     0 OBJECT  GLOBAL DEFAULT  ABS end
   135: 080489dc    41 FUNC    GLOBAL DEFAULT  UND fseek
   136: 0804922c   212 FUNC    GLOBAL DEFAULT    9 decodeEscape
   137: 0804d58c    34 FUNC    GLOBAL DEFAULT    9 des_key_sched
   138: 0805aca0     4 OBJECT  GLOBAL DEFAULT   12 __progname
   139: 08048bac   131 FUNC    GLOBAL DEFAULT    9 _start
   140: 080489ec   109 FUNC    GLOBAL DEFAULT  UND strstr
   141: 080489fc    25 FUNC    WEAK   DEFAULT  UND __error
   142: 08048a0c     7 FUNC    GLOBAL DEFAULT  UND ___runetype
   143: 08048a1c     0 FUNC    GLOBAL DEFAULT  UND strncmp
   144: 08048a2c    57 FUNC    GLOBAL DEFAULT  UND strncpy
   145: 0805bdf4     4 OBJECT  GLOBAL DEFAULT   17 _CurrentRuneLocale
   146: 08049ccc    38 FUNC    GLOBAL DEFAULT    9 fopenParamText
   147: 08048a3c     0 FUNC    GLOBAL DEFAULT  UND memcmp
   148: 08048a4c   217 FUNC    GLOBAL DEFAULT  UND fdopen
   149: 08049300   864 FUNC    GLOBAL DEFAULT    9 getFormData
   150: 0805bdf8   264 OBJECT  GLOBAL DEFAULT   17 __sF
   151: 08048a5c   249 FUNC    GLOBAL DEFAULT  UND fread
   152: 0804b2d8   206 FUNC    GLOBAL DEFAULT    9 K_getCipParam
   153: 08050a7c 14743 FUNC    GLOBAL DEFAULT    9 des_encrypt
   154: 0804af94   834 FUNC    GLOBAL DEFAULT    9 getDecParam
   155: 08059400  2048 OBJECT  GLOBAL DEFAULT   11 des_SPtrans
   156: 08048a6c   167 FUNC    GLOBAL DEFAULT  UND fopen
   157: 0805b19c     0 OBJECT  GLOBAL DEFAULT  ABS __bss_start
   158: 0804aeec   166 FUNC    GLOBAL DEFAULT    9 getCipParam
   159: 08048a7c    57 FUNC    GLOBAL DEFAULT  UND localtime
   160: 08048a8c     0 FUNC    GLOBAL DEFAULT  UND memset
   161: 08048c90  1050 FUNC    GLOBAL DEFAULT    9 main
   162: 0804d1bc   976 FUNC    GLOBAL DEFAULT    9 des_set_key
   163: 0805b048     4 OBJECT  GLOBAL DEFAULT   12 libdes_version
   164: 08048a9c   269 FUNC    GLOBAL DEFAULT  UND fclose
   165: 08049960   874 FUNC    GLOBAL DEFAULT    9 printHeader2
   166: 08048aac    67 FUNC    GLOBAL DEFAULT  UND time
   167: 08048abc     0 FUNC    GLOBAL DEFAULT  UND strcmp
   168: 08058318     0 FUNC    GLOBAL DEFAULT   10 _fini
   169: 08048acc    88 FUNC    GLOBAL DEFAULT  UND sprintf
   170: 080581c8   114 FUNC    GLOBAL DEFAULT    9 des_options
   171: 08048adc   112 FUNC    GLOBAL DEFAULT  UND atexit
   172: 08049f94  1190 FUNC    GLOBAL DEFAULT    9 checkDateStr
   173: 0804ba7c   306 FUNC    GLOBAL DEFAULT    9 cm_flock
   174: 080490ac    54 FUNC    GLOBAL DEFAULT    9 countParameter
   175: 08048aec    94 FUNC    GLOBAL DEFAULT  UND strftime
   176: 08049d2c   390 FUNC    GLOBAL DEFAULT    9 getParamText
   177: 08048afc     0 FUNC    WEAK   DEFAULT  UND stat
   178: 0805823c   218 FUNC    GLOBAL DEFAULT    9 des_ecb_encrypt
   179: 0805b040     4 OBJECT  GLOBAL DEFAULT   12 SHA1_version
   180: 08048b0c     0 FUNC    WEAK   DEFAULT  UND access
   181: 0805b19c     0 OBJECT  GLOBAL DEFAULT  ABS _edata
   182: 0805b064     0 OBJECT  GLOBAL DEFAULT  ABS _GLOBAL_OFFSET_TABLE_
   183: 0805bf24     0 OBJECT  GLOBAL DEFAULT  ABS _end
   184: 0805af60     4 OBJECT  GLOBAL DEFAULT   12 des_check_key
   185: 080491c8    98 FUNC    GLOBAL DEFAULT    9 hex
   186: 08048b1c    91 FUNC    GLOBAL DEFAULT  UND exit
   187: 0804b3a8   870 FUNC    GLOBAL DEFAULT    9 K_getDecParam
   188: 0804a8a4   882 FUNC    GLOBAL DEFAULT    9 cm_GetSysTime
   189: 08048b2c    39 FUNC    GLOBAL DEFAULT  UND atoi
   190: 08048b3c     0 FUNC    GLOBAL DEFAULT  UND strlen
   191: 08048b4c     0 FUNC    WEAK   DEFAULT  UND open
   192: 08048b5c     0 FUNC    GLOBAL DEFAULT  UND strchr
   193: 08049660   231 FUNC    GLOBAL DEFAULT    9 IN
   194: 08048b6c     0 FUNC    WEAK   DEFAULT  UND fcntl
   195: 080490e4   226 FUNC    GLOBAL DEFAULT    9 copyPointer
   196: 08048b7c     0 FUNC    WEAK   DEFAULT  UND close
   197: 08049eb4    69 FUNC    GLOBAL DEFAULT    9 outputErrorUrl
   198: 08048b8c     8 FUNC    GLOBAL DEFAULT  UND ___tolower
   199: 08048b9c   190 FUNC    GLOBAL DEFAULT  UND free

Histogram for bucket list length (total of 37 buckets):
 Length  Number     % of total  Coverage
      0  9          ( 24.3%)
      1  11         ( 29.7%)     20.0%
      2  12         ( 32.4%)     63.6%
      3  2          (  5.4%)     74.5%
      4  1          (  2.7%)     81.8%
      5  2          (  5.4%)    100.0%

No version information found in this file.

Notes at offset 0x000123da with length 0x0000012c:
  Owner         Data size       Description
  01.01         0x00000000      NT_VERSION (version)
  01.01         0x00000000      NT_VERSION (version)
  01.01         0x00000000      NT_VERSION (version)
  01.01         0x00000000      NT_VERSION (version)
  01.01         0x00000000      NT_VERSION (version)
  01.01         0x00000000      NT_VERSION (version)
  01.01         0x00000000      NT_VERSION (version)
  01.01         0x00000000      NT_VERSION (version)
  01.01         0x00000000      NT_VERSION (version)
  01.01         0x00000000      NT_VERSION (version)
  01.01         0x00000000      NT_VERSION (version)
  01.01         0x00000000      NT_VERSION (version)
  01.01         0x00000000      NT_VERSION (version)
  01.01         0x00000000      NT_VERSION (version)
  01.01         0x00000000      NT_VERSION (version)
Comment 5 kenji 2017-03-02 10:07:25 UTC
Created attachment 180430 [details]
The binary in question is this
Comment 6 Konstantin Belousov freebsd_committer freebsd_triage 2017-03-03 13:37:53 UTC
Created attachment 180462 [details]
Prefer brand with exactly matching interpreter.

The patch fixed the image activation for me.  Problem was that we selected brands randomly (in order of registration), without paying attention to the specified interpreter.
Comment 7 commit-hook freebsd_committer freebsd_triage 2017-03-07 13:39:05 UTC
A commit references this bug:

Author: kib
Date: Tue Mar  7 13:38:25 UTC 2017
New revision: 314851
URL: https://svnweb.freebsd.org/changeset/base/314851

Log:
  When selecting brand based on old Elf branding, prefer the brand which
  interpreter exactly matches the one requested by the activated image.

  This change applies r295277, which did the same for note branding, to
  the old brand selection, with the same reasoning of fixing compat32
  interpreter substitution.

  PR:	211837
  Reported by:	kenji@kens.fm
  Sponsored by:	The FreeBSD Foundation
  MFC after:	1 week

Changes:
  head/sys/kern/imgact_elf.c
Comment 8 kenji 2017-03-09 07:25:54 UTC
Confirmed. Thanks!

BTW, this binary no longer runs on recent head, right?
Comment 9 Konstantin Belousov freebsd_committer freebsd_triage 2017-03-09 13:09:11 UTC
(In reply to kenji from comment #8)
Why do you think that the binary cannot be run on HEAD ?  It should.

The binary is FreeBSD-4 era freebsd native ABI binary.
Comment 10 kenji 2017-03-09 13:29:34 UTC
I'm sorry
I misunderstood that the binary is "SVR 4".