Full_Name: Jon Roose Version: HEAD OS: Linux URL: Submission from: (NULL) (68.134.180.197)
The b64_to_ab64 function within the pbkdf2 password module is incorrect.
When str[0] == '+' this function fails to convert that first character to a '.'
The file in question is here: contrib/slapd-modules/passwd/pbkdf2/pw-pbkdf2.c and occurs at line 62 in the current version of the file.
This occurs because when you write while (*p++), it changes the pointer and skips over the first character of str.
This needs to be replaced with a for loop such as: for(char* p = str; *p; p++)
This is a significant bug in this module, because it causes the hash algorithm to fail to be replicable by outside hash implementations 1 out of every 64 hashes on average.