1. JavaScript / Говнокод #20105

    +6

    1. 1
    2. 2
    3. 3
    4. 4
    > var x = new String("eval(x.toString())");
    undefined
    > eval(x.toString());
    RangeError: Maximum call stack size exceeded

    Yo dawg, I heard you like evaluation. So I put evaluation in your evaluation so you could evaluate while you evaluate
    Жаль что nodejs не осиливает заоптимизировать это как бесконечный цикл

    Запостил: j123123, 31 Мая 2016

    Комментарии (13) RSS

    • хм. а из этого с web worker'ами fork bomb можно сделать?
      Ответить
    • после паузы, наконец мозги удалось распрямить, что бы их в другой узел завернуть, теперь на перле:

      $x = \'eval($$x)';
      eval($$x);
      Ответить
      • Вместо того чтобы гордо упасть, как это делает nodejs, perl нагружает на 100% одно ядро и медленно пожирает память
        mremap(0x7fb4a6c47000, 1036288, 1552384, MREMAP_MAYMOVE) = 0x7fb4a4853000
        brk(0x452f000)                          = 0x452f000
        brk(0x452e000)                          = 0x452e000
        brk(0x454f000)                          = 0x454f000
        brk(0x454e000)                          = 0x454e000
        brk(0x456f000)                          = 0x456f000
        brk(0x456e000)                          = 0x456e000
        brk(0x458f000)                          = 0x458f000
        brk(0x458e000)                          = 0x458e000
        brk(0x45af000)                          = 0x45af000
        brk(0x45d0000)                          = 0x45d0000
        brk(0x45f1000)                          = 0x45f1000
        brk(0x45f0000)                          = 0x45f0000
        brk(0x4611000)                          = 0x4611000
        brk(0x4610000)                          = 0x4610000
        brk(0x4631000)                          = 0x4631000
        brk(0x4630000)                          = 0x4630000
        brk(0x4651000)                          = 0x4651000

        но OOM Killer начеку
        Ответить
        • > Вместо того чтобы гордо упасть, как это делает nodejs, perl нагружает на 100% одно ядро и медленно пожирает память

          Да. Перл медленно и уверенно устаревает.

          ЗЫ Перл это стэковая машина, поэтому нормальный стэк процесса не жрет - жрет хип, стэк интерпретатора. Поэтому и слетает мендленее.
          Ответить
      • Python 2.7.6 (default, Jun 22 2015, 17:58:13) 
        [GCC 4.8.2] on linux2
        Type "help", "copyright", "cre$ pythondits" or "license" for more information.
        >>> a = "eval(a)"
        >>> eval(a)
        Traceback (most recent call last):
        ...
          File "<string>", line 1, in <module>
          File "<string>", line 1, in <module>
          File "<string>", line 1, in <module>
          File "<string>", line 1, in <module>
          File "<string>", line 1, in <module>
          File "<string>", line 1, in <module>
        ...
          File "<string>", line 1, in <module>
          File "<string>", line 1, in <module>
          File "<string>", line 1, in <module>
        KeyError: 'unknown symbol table entry'
        Ответить
    • Нахуй переусложнять?

      var x = "eval(x)";
      eval(x);
      Ответить
      • var x = '$$>0 ? eval(x.replace(/\\$\\$/g, $$-1)) * $$ : 1';
        eval(x.replace(/\$\$/g, 5))
        Ответить
        • Больше хуйни богу хуйни.
          Ответить
        • > x.replace(/\\$\\$/g, $$-1)

          import java.io.*;
          import java.util.regex.*;
          import java.util.*;
          
          class WhereYourGodIsNow
          {
              public static void main(String[] args) {
                  
                  magic("+","KFwxLnxeLikr");
                  magic("^","KFwxXDF8Xi4pKi4=");        
                  magic("*","KD94KSAoPzogKD89KF58XDEgLikpICg_OiBeLiB8ICg_PD0oXi4qKSkgKD89KC4qKSkgKD86ICg_OiAgKD89KCg_PVwzKSAuICB8ICBcNCAuKSkgKD89XDEoLiopKSAoPz1cNFw1KSAgKSBcMikrICg_PD0oPz1eXDQoLiopKS4qKSAoPzw9KD89XlwxXDYpLiopICkpKw==");                
                  
              }
              public static void magic(String op,String code) {
                 final Pattern P= Pattern.compile( new String(Base64.getUrlDecoder().decode(
                    code
                 )));
                  int j=0;
                 for (int i = 0; i < 5555; i++) {
                    Matcher m = P.matcher(new String(new char[i]));
                    if (m.matches()) {
                       System.out.println( i +"= "+((code.length()%3)+1)+op+ ".."+op+ ++j );
                    }
                 }
              }
          }


          ideone чёт сломался. https://is.gd/w9Pd9V
          Ответить
    • - Ага! - сказали суровые сибирские программисты и пошли дальше писать HTML в нотепаде.
      Ответить

    Добавить комментарий