SkillAgentSearch skills...

Pitboss

Run dubious code in node!

Install / Use

/learn @mdp/Pitboss
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Deprication and better alternative

This library is old, unmaintained and not very useful. Please see vm2 if you're need something similar.

Build
Status

Pitboss

Pitboss

A module for running untrusted code

Runs JS code and returns the last eval'd statement

code = """
  num = num % 5;
  num;
"""
pitboss = new Pitboss(code)
pitboss.run {num: 23}, (err, result) ->
  assert.equal 3, result

Handles processes that take too damn long

code = """
  while(true) { num % 3 };
"""
pitboss = new Pitboss code
  timeout: 2000
pitboss.run {num: 23}, (err, result) ->
  assert.equal "Timeout", err

Doesn't choke under pressure(or shitty code)

code = """
  What the fuck am I writing?
"""
pitboss = new Pitboss code
  timeout: 2000
pitboss.run {num: 23}, (err, result) ->
  assert.equal "VM Syntax Error: SyntaxError: Unexpected identifier", err

Doesn't handle this! But 'ulimit' does!

code = """
  str = ''
  while(true) { str = str + "Memory is a finite resource!" };
"""
pitboss = new Pitboss code
  timeout: 10000
pitboss.run {num: 23}, (err, result) ->
  assert.equal "Process failed", err

And since Pitboss forks each process, ulimit kills only the runner

View on GitHub
GitHub Stars6
CategoryDevelopment
Updated6y ago
Forks4

Languages

CoffeeScript

Security Score

55/100

Audited on May 6, 2019

No findings