Я бегу, pdftoppm
чтобы преобразовать предоставленный пользователем PDF в изображение с разрешением 300 точек на дюйм. Это прекрасно работает, за исключением случаев, когда пользователь предоставляет PDF с очень большим размером страницы. pdftoppm
выделит достаточно памяти для хранения изображения с разрешением 300 точек на дюйм такого размера, которое для 100-дюймовой квадратной страницы составляет 100 * 300 * 100 * 300 * 4 байта на пиксель = 3,5 ГБ. Злонамеренный пользователь может просто дать мне большой глупый PDF и вызвать все виды проблем.
Поэтому я хотел бы установить какое-то жесткое ограничение на использование памяти для дочернего процесса, который я собираюсь запустить - просто заставьте процесс умереть, если он попытается выделить больше, скажем, 500 МБ памяти. Это возможно?
Я не думаю, что ulimit может быть использован для этого, но есть ли однопроцессный эквивалент?
docker
?