+Fri Jul 26 17:48:14 1996 Sam Hartman <hartmans@mit.edu>
+
+ * svr_principal.c (krb5_copy_key_data_contents): If
+ key_data_length[i] == 0, don't complain if malloc(0) returns 0;
+ this is allowed by ANSI.
+
Thu Jul 25 18:42:47 1996 Sam Hartman <hartmans@mit.edu>
* configure.in (LIBS): Link against -ldb under AIX for shared
idx = (from->key_data_ver == 1 ? 1 : 2);
for (i = 0; i < idx; i++) {
- to->key_data_contents[i] = malloc(from->key_data_length[i]);
- if (to->key_data_contents[i] == NULL) {
- for (i = 0; i < idx; i++) {
- if (to->key_data_contents[i]) {
- memset(to->key_data_contents[i], 0,
- to->key_data_length[i]);
- free(to->key_data_contents[i]);
- }
- }
- return ENOMEM;
- }
- memcpy(to->key_data_contents[i], from->key_data_contents[i],
- from->key_data_length[i]);
+ if ( from->key_data_length[i] ) {
+ to->key_data_contents[i] = malloc(from->key_data_length[i]);
+ if (to->key_data_contents[i] == NULL) {
+ for (i = 0; i < idx; i++) {
+ if (to->key_data_contents[i]) {
+ memset(to->key_data_contents[i], 0,
+ to->key_data_length[i]);
+ free(to->key_data_contents[i]);
+ }
+ }
+ return ENOMEM;
+ }
+ memcpy(to->key_data_contents[i], from->key_data_contents[i],
+ from->key_data_length[i]);
+ }
}
return 0;
}