Package: libpam-mount Version: 0.44-1+lenny2 Severity: grave libpam-mount in lenny segfaults on trying to expand home directories in user="" attributes.
I don't have the backtrace at hand (it's kind of hard to write mail
when your $HOME cannot be mounted ;), but the problem is as follows:
expandconfig() tries to call expand_home() on the mountpoint member of
vpt. This field gets a low (text?) memory address, and dereferencing
*path segfaults.
Even if that worked, the later call free(path) would try to free an
array, not a pointer.
The broken code was introduced in -1+lenny2 in
08_expand_home_fix.dpatch with the fix for #502146.
rdconf1.c:
86 bool expandconfig(const struct config *config)
87 {
88 const char *u = config->user;
89 struct vol *vpt;
90
91 HXlist_for_each_entry(vpt, &config->volume_list, list) {
92 if (!expand_home(u, &vpt->mountpoint) ||
278 static bool expand_home(const char *user, char **path_pptr)
279 {
280 char *buf, *path = *path_pptr;
281 struct passwd *pe;
282 size_t size;
283
284 if (path == NULL)
285 return true;
286 if (*path != '~') <-- segfault
287 return true;
298 free(path); <-- tries to free an array
299 *path_pptr = buf;
300 return true;
301 }
private.h:
51 struct vol {
68 char mountpoint[PATH_MAX + 1]; <-- not a pointer
72 };
Christoph
--
[EMAIL PROTECTED] | http://www.df7cb.de/
signature.asc
Description: Digital signature

