- 1
- 2
- 3
- 4
- 5
- 6
- 7
if (argc == 3)
snprintf(outfile, sizeof(outfile) - 1, "scan.log", argv[1], argv[2]);
else if (argc >= 4)
{
snprintf(outfile, sizeof(outfile) - 1, "scan.log", argv[1], argv[3], argv[2]);
// ...
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+132
if (argc == 3)
snprintf(outfile, sizeof(outfile) - 1, "scan.log", argv[1], argv[2]);
else if (argc >= 4)
{
snprintf(outfile, sizeof(outfile) - 1, "scan.log", argv[1], argv[3], argv[2]);
// ...
}
Какой-то иксплойт, файл pscan2.c
absolut 14.03.2011 21:48 # 0
TheCalligrapher 15.03.2011 01:07 # 0
Подозреваю, что когда-то имя файла зависело от `argv`, а потом кому-то надоело трахаться с кривыми именами фалов (которые неизбежно будут получаться при таком примитивном подходе) и они просто жестко прошили имя "scan.log" для всех случаев. А мертвые теперь аргументы или просто забыли вычистить, или сознательно оставили, на случай если в будущем захочется вернуться к прежнему варианту.
da4ever 15.03.2011 02:25 # 0
2. возможно имелось в виду, что код из эксплойта
3. еще раз стандарт
4...
TheCalligrapher 15.03.2011 04:30 # −2
da4ever 15.03.2011 05:32 # 0
TheCalligrapher 15.03.2011 07:46 # −1
da4ever 15.03.2011 11:33 # −1
gegMOPO4 15.03.2011 13:42 # −1
TheCalligrapher 15.03.2011 16:41 # +1
da4ever 15.03.2011 17:11 # −1
Я подумал было, что вы действительно можете указать мне место в стандарте, где сказано "игнорируемые параметры функции являются лишними".
Впрочем этой дурацкой придирки не возникло бы, если бы вы в своем первом коменте взяли слово "лишние" в кавычки так-же, как сделали это во всех остальных комментариях к этому посту. Кавычки вы, как я погляжу, любите - вон сколько наставили! Ну неужели вам было сложно?
И да, это то, что я имел в виду, написав вам про стандарт.
TheCalligrapher 15.03.2011 17:22 # +1
da4ever 15.03.2011 02:23 # −2
дискардит все, что больше n-1. а вот на строку форматирования нифига не похоже.
TheCalligrapher 15.03.2011 04:34 # 0
А вот что Вам показалось "похоже", а что "не похоже" мало кому интересно. Читайте стандарт - там ясно английским по белому написано, что такое строка форматирования и как она обрабатывается. Строка "scan.log" является совершенно корректной строкой форматирования. А то, что такая строка форматирования выглядит странно в вышеприведенном контексте (с передаваемыми "лишними" аргументами) - так возможную причину возникновения такой ситуации я детально описал выше.
По существу замечания есть?
da4ever 15.03.2011 05:38 # 0
Ни разу не сталкивался. Или сталкивался но не обращал внимания.
Замечательно что на ГК сидят не только похапешники. Си Хайль!
RaZeR 15.03.2011 21:29 # 0
Даёшь равноправие! Долой однопартийную систему! Си - в массы!