- tz_rules[1].name = (char *) malloc(strlen(tz) + 1);
- if (tz_rules[1].name == NULL)
- return;
- if (sscanf(tz, "%[^0-9,+-]", tz_rules[1].name) != 1 ||
- (l = strlen(tz_rules[1].name)) < 3)
- return;
- tz_rules[1].name = (char *) realloc((PTR) tz_rules[1].name, l + 1);
- if (tz_rules[1].name == NULL)
- return;
+ char *n = malloc (strlen(tz) + 1);
+ if (n != NULL)
+ {
+ tz_rules[1].name = n;
+ if (sscanf(tz, "%[^0-9,+-]", tz_rules[1].name) != 1 ||
+ (l = strlen(tz_rules[1].name)) < 3)
+ {
+ free (n);
+ tz_rules[1].name = (char *) "";
+ goto done_names; /* Punt on name, set up the offsets. */
+ }
+ n = realloc ((PTR) tz_rules[1].name, l + 1);
+ if (n != NULL)
+ tz_rules[1].name = n;
+ }