When using pam modules for naming services or authentication databases not directly supported by pwdb (such as LDAP) the passwd command will segfault. This is due to pwdb subverting standard UNIX system calls that should be handled by the Nameservice Switch (NSS) module (ie getpwuid, getpwnam). Thus when a nameservice/pam module not known to pwdb is used passwd.c (line 76) 'user' gets a null pointer and the following strdup call causes a segmentation fault.
pwdb needs a rewrite to be able to deal with that situation. A future version of pwdb will use the nss modules for perorming the user lookups. For now, using other modules is not supported. And for things like ldap one will need a special passwd program anyway.