PDA

Просмотр полной версии : Ошибка в коде Си


abrikos
07.04.2004, 11:23
Сырцы uw-imapd патчатся на приедмет MySQL авторизации.
В одном месте есть трабл:
if (!pw) {
char **login,**pwd,**home;
login=alloca(sizeof(char*));
pwd=alloca(sizeof(char*));
home=alloca(sizeof(char*));
if (sql_get_uid(user,login,pwd,home)) {
pw=getpwnam("mailnull");
syslog(LOG_ALERT,"LOG: %s\n","before"); /*Это выводится в лог*/
pw->pw_name=strdup(*login);
syslog(LOG_ALERT,"LOG: %s\n","after"); /*Это УЖЕ НЕ выводится в лог*/

pw->pw_dir=strdup("*home");
pw->pw_passwd=strdup(*pwd);
}
}
т.е. напрашивается что ошибка в строке:
pw->pw_name=strdup(*login);
если закоментить эту строку, то в лог не пишется после pw->pw_dir=strdup("*home");
syslog(LOG_ALERT,"LOG: %s\n","after"); /*Это тоже НЕ выводится в лог*/
Ошибка типов?
Может кто-нить помочь?