(parse_keys): handle the case of an empty salt
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@3111 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
15
admin/load.c
15
admin/load.c
@@ -135,12 +135,17 @@ parse_keys(hdb_entry *ent, char *str)
|
||||
krb5_data_zero (key->salt);
|
||||
} else {
|
||||
if(strcmp(p, "-") != 0){
|
||||
size_t p_len = strlen(p);
|
||||
|
||||
key->salt = malloc(sizeof(*key->salt));
|
||||
krb5_data_alloc(key->salt, (strlen(p) - 1) / 2 + 1);
|
||||
for(i = 0; i < strlen(p); i += 2){
|
||||
sscanf(p + i, "%02x", &tmp);
|
||||
((u_char*)key->salt->data)[i / 2] = tmp;
|
||||
}
|
||||
if (p_len) {
|
||||
krb5_data_alloc(key->salt, (p_len - 1) / 2 + 1);
|
||||
for(i = 0; i < p_len; i += 2){
|
||||
sscanf(p + i, "%02x", &tmp);
|
||||
((u_char*)key->salt->data)[i / 2] = tmp;
|
||||
}
|
||||
} else
|
||||
krb5_data_zero (key->salt);
|
||||
}
|
||||
p = strsep(&str, ":");
|
||||
}
|
||||
|
@@ -135,12 +135,17 @@ parse_keys(hdb_entry *ent, char *str)
|
||||
krb5_data_zero (key->salt);
|
||||
} else {
|
||||
if(strcmp(p, "-") != 0){
|
||||
size_t p_len = strlen(p);
|
||||
|
||||
key->salt = malloc(sizeof(*key->salt));
|
||||
krb5_data_alloc(key->salt, (strlen(p) - 1) / 2 + 1);
|
||||
for(i = 0; i < strlen(p); i += 2){
|
||||
sscanf(p + i, "%02x", &tmp);
|
||||
((u_char*)key->salt->data)[i / 2] = tmp;
|
||||
}
|
||||
if (p_len) {
|
||||
krb5_data_alloc(key->salt, (p_len - 1) / 2 + 1);
|
||||
for(i = 0; i < p_len; i += 2){
|
||||
sscanf(p + i, "%02x", &tmp);
|
||||
((u_char*)key->salt->data)[i / 2] = tmp;
|
||||
}
|
||||
} else
|
||||
krb5_data_zero (key->salt);
|
||||
}
|
||||
p = strsep(&str, ":");
|
||||
}
|
||||
|
Reference in New Issue
Block a user