Summary: | kvpnc меняет права на /dev/null | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | Denis Nazarov <marsden> |
Component: | kvpnc | Assignee: | Sergey V Turchin <zerg> |
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus |
Severity: | blocker | ||
Priority: | P3 | CC: | mike, mithraen, vsu |
Version: | unstable | ||
Hardware: | all | ||
OS: | Linux |
Description
Denis Nazarov
2009-12-07 18:27:21 MSK
Это блокер, согласно http://www.altlinux.org/BugSeverityPolicy; чинить осмысленно в Sisyphus, а в M51 скопировать. Подумал было, что виноват pptp, проверил так - на машине с 4.1/бранч поставил pptp-client-1.7.2-alt1 из 5.1 - не воспроизводится. На эту же машину поставить kvpnc-0.9.2 (стоит 0.9.0) не получилось, потому что попросил kde4libs не ниже 4.3.0, а это уже половина бранча 5.1. Покопался в исходниках - честно говоря, не нашел, где такое может происходить Попробуйте 0.9.3, когда доберется. А вообще, есть вероятность, что меняет не он, а тот, кого запускает. не утерпел, вытянул 0.9.3 из git`a, то же самое. В общем, копание в исходном коде локализовало примерную область, где это происходит. Блок между строками 4622-4632 в kvpnc.cpp - проверка возможностей pppd. На днях продолжу изыскания (В ответ на комментарий №5)
> Блок между строками 4622-4632 в kvpnc.cpp
там есть Utils::checkPppdCapabilities(), в которой есть строки
args.append("/dev/null")
Возможно, запускают как-то не так или сам pppd хулиганит
Там запускается pppd /dev/null require-mppe , после чего слетают права Как-минимум, pppd должен восстановить права обратно (In reply to comment #7) > Там запускается pppd /dev/null require-mppe Зачем там /dev/null?! (и не для желаемого ли часом есть опция notty?) > после чего слетают права Да, pppd что-то делал с правами на ttyS. См. тж. ppp-2.4.1-pidfile-owner.patch для этого куска. Тем не менее мне _пока_ кажется, что подсовывать /dev/null в качестве tty противоестественно. То есть исправление ppp для учёта таких случаев склонен считать работой над повышением дуракоустойчивости. Если будет необходимо, могу помочь с текстом письма для доведения этого соображения до апстрима kvpnc. > > Там запускается pppd /dev/null require-mppe > Зачем там /dev/null?! (и не для желаемого ли часом есть опция notty?) точно. Заменил в исходниках /dev/null на notty, пересобрал - проблема исчезла. Единственное, что заметил - в логе в момент запуска вываливается набор символов, как если бы в консоли ввести pppd notty require-mppe, но имхо, это не страшно. Потом пришла мысль, что автор хотел сделать pppd require-mppe > /dev/null. Заменил в utils.cpp (строки 648-649) args.append("/dev/null") args.append("require-mppe") на args.append("require-mppe") args.append(" > /dev/null") И этот вариант тоже сработал. В таком виде в логе ничего не появляется (видимо, это и было задумкой), права не слетают (с чего бы вдруг?), тест на mmpe проходит нормально, судя по тому, что в логе обнаружена строка "отладка: /usr/sbin/pppd имеет поддержку MPPE.". Исходная бага проявлялась только при первом коннекте после запуска kvpnc, последующие коннекты не меняли права на /dev/null и, судя по логам так и происходит, потому что проверка mppe проходит только при первом коннекте. > Если будет необходимо, могу помочь с текстом письма для доведения этого > соображения до апстрима kvpnc. думаю, было бы неплохо (В ответ на комментарий №10) > но имхо, это не страшно. теплое вместо зеленого не прокатит. > > соображения до апстрима kvpnc. > думаю, было бы неплохо да, было бы здорово (В ответ на комментарий №10) > args.append("require-mppe") > args.append(" > /dev/null") Не дочитал сразу. Да. Это можно. kvpnc-0.9.3-alt2 |