pututline goes to infinity and beyond (0.9.28.x) (threading infinite loop)

Kevin Day thekevinday at gmail.com
Sun Mar 25 22:02:48 UTC 2007


I have used the project "qingy" from sourceforge.net to consistently
reproduce this problem.

when utsline is called, an infinite loop occurs.
At first glance, it looked to me like the problem was that there was
mutex_lock and mutex_unlock calls being made but on some of the return
statements never called mutex_unlock.

Looking into the mutex_lock and mutex_unlock functions i've noticed
that a while(0) loop is going on.

Apparently, when qingy is trying to login after a successful password
check (from either PAM or shadow), the login process begins and qingy
tries to write its status to utmp.
However, when it calls pututline, the program stops executing until
the end of the all existance (and beyond).

This also apparently works under glibc as the author of the project
does not use uClibc as far as I know.

I can remove the pututline from the source and the infinity loop does
not happen and login is successful.

Any ideas? Solutions?
-- 
Kevin Day



More information about the uClibc mailing list