------- Comment From holger.deng...@ibm.com 2024-01-11 13:09 EDT------- (In reply to comment #9) > Holger: I can't pretend speaking for the SRU team, but I'd be willing to bet > that having "the fix is trivial" as a test plan would result in the SRU > being trivially rejected :-).
@schopin: The API description of localtime_r() (man localtime_r) describes, that the function can return a NULL pointer on error. The API documentation of strftime() (man strftime) describes, that the last parameter of the function should not be a NULL pointer. If a program put the return value of localtime_r() as the last parameter in a strftime() call, than we have a classical programming error. It is just a missing NULL pointer check. That was the thing, that I meant with "trivial". There are a lot of patches in many projects, which introduces NULL pointer checks. For the most of them I guess, there was never a test case or test plan. So yes, if you find a way to cause a reproducible failure of localtime_r(), you can write a testcase. But I'm not sure, if it is worth to spend all that effort in a fix, which just fixes a missing NULL pointer check... -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to pam in Ubuntu. https://bugs.launchpad.net/bugs/2045250 Title: pam_lastlog doesn't handle localtime_r related errors properly Status in Ubuntu on IBM z Systems: New Status in pam package in Ubuntu: New Status in pam package in Fedora: Fix Released Bug description: The pam version(s) in Debian (checked buster) and Ubuntu (checked focal to noble) are affected by https://bugzilla.redhat.com/show_bug.cgi?id=2012871 Customers report a command going through PAM crashing for a given user. A potential follow on issue can be that no ssh remote connections to an affected server are possible anymore, esp. painful with headless systems (was reported on a different distro). This is caused by an issue in modules/pam_lastlog/pam_lastlog.c: with tm = localtime_r(...) that can be NULL and needs to be handled. There are two such cases in modules/pam_lastlog/pam_lastlog.c (here noble): 314- ll_time = last_login.ll_time; 315: if ((tm = localtime_r (&ll_time, &tm_buf)) != NULL) { 316- strftime (the_time, sizeof (the_time), 317- /* TRANSLATORS: "strftime options for date of last login" */ -- 574- 575- lf_time = utuser.ut_tv.tv_sec; 576: tm = localtime_r (&lf_time, &tm_buf); 577- strftime (the_time, sizeof (the_time), 578- /* TRANSLATORS: "strftime options for date of last login" */ Case 1 (line 315) is properly handled, but not case 2 (line 576). The second case got fixed by: https://github.com/linux-pam/linux-pam/commit/40c271164dbcebfc5304d0537a42fb42e6b6803c This fix should be included in Ubuntu (and Debian). To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu-z-systems/+bug/2045250/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp