Vm2: Boucle infinie dans Promise.then bloque tout le processus

Créé le 12 janv. 2018  ·  4Commentaires  ·  Source: patriksimek/vm2

Ce code ne tient pas compte du délai d'attente et bloque le processus :

'use strict'

const {VM} = require('vm2')

const vm = new VM({
    timeout: 5000,
})

console.log('Runs')

vm.run('Promise.resolve(42).then(() => {while(true) {}})') // hangs the process

setImmediate(console.log, 'Will never run')

Et Promise ne peut pas être facilement désactivé : #74.

stale

Tous les 4 commentaires

Lisezmoi.md

IMPORTANT : le délai d'attente n'est pas efficace pour NodeVM, il n'est donc pas à l'abri de while (true) {} ou d'un mal similaire.

@awiebe sauf que j'utilise VM , pas NodeVM .

Malheureusement, il s'agit d'une autre limitation de la fonctionnalité de délai d'attente du nœud - cela ne fonctionne pas pour les appels asynchrones, même s'ils s'exécutent dans le bac à sable.

Ce problème a été automatiquement marqué comme obsolète, car il n'a pas eu d'activité récente. Il sera fermé s'il n'y a plus d'activité. Merci pour vos contributions.

Cette page vous a été utile?
0 / 5 - 0 notes