- struct header_corporation *corp = &(head->source.corporation);
- if (! corp->phone[0])
- corp->phone[0] = strdup(phone);
- else if (! corp->phone[1])
- corp->phone[1] = strdup(phone);
- else if (! corp->phone[2])
- corp->phone[2] = strdup(phone);
+ if (head) {
+ struct header_corporation *corp = &(head->source.corporation);
+ int i = 0;
+ while (i<2 && corp->phone[i]) i++;
+ if (! corp->phone[i]) {
+ corp->phone[i] = strdup(phone);
+ if (! corp->phone[i]) MEMORY_ERROR;
+ }
+ }