Changeset 2971 in MondoRescue for branches/3.0
- Timestamp:
- Mar 27, 2012, 12:45:33 PM (12 years ago)
- Location:
- branches/3.0/mondo/src/common
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/3.0/mondo/src/common/libmondo-archive.c
r2970 r2971 3046 3046 3047 3047 (void) fwrite((void *) &biggiestruct, 1, sizeof(biggiestruct), fout); 3048 if (fout ) {3048 if (fout != NULL) { 3049 3049 paranoid_fclose(fout); 3050 3050 } -
branches/3.0/mondo/src/common/libmondo-raid.c
r2869 r2971 980 980 FILE *fin; 981 981 int res = 0, row, i, index_min; 982 int v = 0; 982 983 int lastpos = 0; 983 984 size_t len = 0; 984 985 char *token; 985 986 char *string = NULL; 987 char *cmd = NULL; 986 988 char *pos; 987 989 char type; … … 1007 1009 while (*pos == ' ') pos += 1; 1008 1010 mr_asprintf(&strtmp, "%s", pos); 1009 strcpy(string, strtmp);1010 paranoid_free(strtmp);1011 mr_free(string); 1012 string = strtmp; 1011 1013 // if we have newline after only spaces, this is a blank line, update 1012 1014 // counters, otherwise do normal parsing … … 1029 1031 mr_asprintf(&strtmp,"%s%s", device_prefix, token); 1030 1032 strcpy(raidlist->el[raidlist->entries].raid_device, strtmp); 1031 paranoid_free(strtmp);1033 mr_free(strtmp); 1032 1034 mr_free(token); 1035 // store the UUID value in the additional_vars structure 1036 v = raidlist->el[raidlist->entries].additional_vars.entries; 1037 strcpy(raidlist->el[raidlist->entries].additional_vars.el[v].label, "UUID"); 1038 mr_asprintf(&cmd,"mdadm --detail %s | grep UUID | cut -d: -f2- | sed 's/^ *//'", raidlist->el[raidlist->entries].raid_device); 1039 mr_asprintf(&strtmp, "%s", call_program_and_get_last_line_of_output(cmd)); 1040 strcpy(raidlist->el[raidlist->entries].additional_vars.el[v].value, strtmp); 1041 v++; 1042 raidlist->el[raidlist->entries].additional_vars.entries = v; 1033 1043 // skip ':' and status 1034 1044 token = mr_strtok (string, delims, &lastpos); … … 1038 1048 log_msg(1, "RAID device '%s' inactive.\n", 1039 1049 raidlist->el[raidlist->entries].raid_device); 1040 paranoid_free(string);1050 mr_free(string); 1041 1051 mr_free(token); 1042 1052 return 1; … … 1069 1079 } else { 1070 1080 log_msg(1, "Unknown RAID level '%s'.\n", token); 1071 paranoid_free(string);1072 paranoid_free(token);1081 mr_free(string); 1082 mr_free(token); 1073 1083 return 1; 1074 1084 } … … 1093 1103 mr_asprintf(&strtmp,"%s%s", device_prefix, token); 1094 1104 strcpy(raidlist->el[raidlist->entries].data_disks.el[raidlist->el[raidlist->entries].data_disks.entries].device, strtmp); 1095 paranoid_free(strtmp);1105 mr_free(strtmp); 1096 1106 raidlist->el[raidlist->entries].data_disks.entries++; 1097 1107 break; … … 1100 1110 mr_asprintf(&strtmp,"%s%s", device_prefix, token); 1101 1111 strcpy(raidlist->el[raidlist->entries].spare_disks.el[raidlist->el[raidlist->entries].spare_disks.entries].device, strtmp); 1102 paranoid_free(strtmp);1112 mr_free(strtmp); 1103 1113 raidlist->el[raidlist->entries].spare_disks.entries++; 1104 1114 break; … … 1107 1117 mr_asprintf(&strtmp,"%s%s", device_prefix, token); 1108 1118 strcpy(raidlist->el[raidlist->entries].failed_disks.el[raidlist->el[raidlist->entries].failed_disks.entries].device, strtmp); 1109 paranoid_free(strtmp);1119 mr_free(strtmp); 1110 1120 raidlist->el[raidlist->entries].failed_disks.entries++; 1111 1121 log_it("At least one failed disk found in RAID array.\n"); … … 1113 1123 default: // error 1114 1124 log_msg(1, "Unknown device type '%c'\n", type); 1115 paranoid_free(string);1116 paranoid_free(token);1125 mr_free(string); 1126 mr_free(token); 1117 1127 return 1; 1118 1128 break; … … 1171 1181 if (pos < string) { 1172 1182 log_it("String underflow!\n"); 1173 paranoid_free(string);1183 mr_free(string); 1174 1184 return 1; 1175 1185 } … … 1196 1206 if (pos < string) { 1197 1207 printf("ERROR: String underflow!\n"); 1198 paranoid_free(string);1208 mr_free(string); 1199 1209 return 1; 1200 1210 } … … 1216 1226 fclose(fin); 1217 1227 // free string 1218 paranoid_free(string);1228 mr_free(string); 1219 1229 // return success 1220 1230 return 0;
Note:
See TracChangeset
for help on using the changeset viewer.