Je suis en cours pdftoppm
d' exécution pour convertir un fichier PDF fourni par l'utilisateur en une image 300DPI. Cela fonctionne très bien, sauf si l'utilisateur fournit un fichier PDF avec un très grand format de page. pdftoppm
allouera suffisamment de mémoire pour contenir en mémoire une image de 300 ppp de cette taille, ce qui, pour une page carrée de 100 pouces correspond à 100 * 300 * 100 * 300 * 4 octets par pixel = 3,5 Go. Un utilisateur malveillant pourrait simplement me donner un fichier PDF de taille stupide et causer toutes sortes de problèmes.
Donc, ce que je voudrais faire, c’est imposer une limite stricte à l’utilisation de la mémoire pour un processus enfant que je suis sur le point d’exécuter - faites en sorte que le processus disparaisse si vous essayez d’allouer plus de 500 Mo de mémoire, par exemple. Est-ce possible?
Je ne pense pas que ulimit puisse être utilisé pour cela, mais existe-t-il un équivalent en un processus?
docker
- être ?