Changeset 688 in MondoRescue for trunk/mondo/mondo/common/libmondo-mountlist.c
- Timestamp:
- Jul 17, 2006, 3:44:46 PM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/mondo/mondo/common/libmondo-mountlist.c
r507 r688 60 60 61 61 /*@ buffers ******************************************************** */ 62 char *tmp; 63 char *device; 62 char *tmp = NULL; 63 char *tmp1 = NULL; 64 char *device = NULL; 64 65 // BERLIOS : useless ? char *mountpoint; 65 66 … … 69 70 70 71 /*@ pointers ******************************************************* */ 71 char *part_table_fmt ;72 char *part_table_fmt = NULL; 72 73 73 74 /*@ initialize ***************************************************** */ 74 flaws_str[0] = '\0';75 75 prev_part_no = 0; 76 76 // BERLIOS: tmp[0] = '\0'; … … 81 81 if (physical_drive_size < 0) { 82 82 asprintf(&tmp, " %s does not exist.", drive); 83 strcat(flaws_str, tmp);83 flaws_str = tmp; 84 84 } else { 85 85 asprintf(&tmp, "%s is %ld MB", drive, physical_drive_size); 86 flaws_str = NULL; 86 87 } 87 88 log_it(tmp); … … 108 109 asprintf(&tmp, " Can only have up to 'h' in disklabel."); 109 110 log_it(tmp); 110 strcat(flaws_str, tmp); 111 if (flaws_str) { 112 asprintf(&tmp1, "%s%s",flaws_str, tmp); 113 } else { 114 asprintf(&tmp1, "%s", tmp); 115 } 116 paranoid_free(flaws_str); 117 flaws_str = tmp1; 111 118 paranoid_free(tmp); 112 119 res++; … … 124 131 if (!strstr(flaws_str, tmp)) { 125 132 log_it(tmp); 126 strcat(flaws_str, tmp); 133 if (flaws_str) { 134 asprintf(&tmp1, "%s%s",flaws_str, tmp); 135 } else { 136 asprintf(&tmp1, "%s", tmp); 137 } 138 paranoid_free(flaws_str); 139 flaws_str = tmp1; 127 140 res++; 128 141 } … … 134 147 asprintf(&tmp, " %s is tiny!", device); 135 148 log_it(tmp); 136 strcat(flaws_str, tmp); 149 if (flaws_str) { 150 asprintf(&tmp1, "%s%s",flaws_str, tmp); 151 } else { 152 asprintf(&tmp1, "%s", tmp); 153 } 154 paranoid_free(flaws_str); 155 flaws_str = tmp1; 137 156 paranoid_free(tmp); 138 157 res++; … … 147 166 asprintf(&tmp, " %s has a weird mountpoint.", device); 148 167 log_it(tmp); 149 strcat(flaws_str, tmp); 168 if (flaws_str) { 169 asprintf(&tmp1, "%s%s",flaws_str, tmp); 170 } else { 171 asprintf(&tmp1, "%s", tmp); 172 } 173 paranoid_free(flaws_str); 174 flaws_str = tmp1; 150 175 paranoid_free(tmp); 151 176 res++; … … 155 180 asprintf(&tmp, " %s has unsupported format %s.", device, mountlist->el[pos].format); 156 181 log_it(tmp); 157 strcat(flaws_str, tmp); 182 if (flaws_str) { 183 asprintf(&tmp1, "%s%s",flaws_str, tmp); 184 } else { 185 asprintf(&tmp1, "%s", tmp); 186 } 187 paranoid_free(flaws_str); 188 flaws_str = tmp1; 158 189 paranoid_free(tmp); 159 190 res++; … … 179 210 180 211 if (((pos >= 0) || npos) && foundsome) { 181 sprintf(flaws_str + strlen(flaws_str), 182 " %s has both DD and PC-style partitions.", drive); 212 asprintf(&tmp, " %s has both DD and PC-style partitions.", drive); 213 if (flaws_str) { 214 asprintf(&tmp1, "%s%s",flaws_str, tmp); 215 } else { 216 asprintf(&tmp1, "%s", tmp); 217 } 218 paranoid_free(flaws_str); 219 flaws_str = tmp1; 220 paranoid_free(tmp); 183 221 return ++res; // fatal error 184 222 } … … 191 229 asprintf(&tmp, " Gap prior to %s.", device); 192 230 log_it(tmp); 193 strcat(flaws_str, tmp); 231 if (flaws_str) { 232 asprintf(&tmp1, "%s%s",flaws_str, tmp); 233 } else { 234 asprintf(&tmp1, "%s", tmp); 235 } 236 paranoid_free(flaws_str); 237 flaws_str = tmp1; 194 238 paranoid_free(tmp); 195 239 res++; … … 199 243 prev_part_no, curr_part_no); 200 244 log_it(tmp); 201 strcat(flaws_str, tmp); 245 if (flaws_str) { 246 asprintf(&tmp1, "%s%s",flaws_str, tmp); 247 } else { 248 asprintf(&tmp1, "%s", tmp); 249 } 250 paranoid_free(flaws_str); 251 flaws_str = tmp1; 202 252 paranoid_free(tmp); 203 253 res++; … … 211 261 asprintf(&tmp, " Partition %ss4 is occupied.", drive); 212 262 log_it(tmp); 213 strcat(flaws_str, tmp); 263 if (flaws_str) { 264 asprintf(&tmp1, "%s%s",flaws_str, tmp); 265 } else { 266 asprintf(&tmp1, "%s", tmp); 267 } 268 paranoid_free(flaws_str); 269 flaws_str = tmp1; 214 270 paranoid_free(tmp); 215 271 res++; … … 227 283 if (!strstr(flaws_str, tmp)) { 228 284 log_it(tmp); 229 strcat(flaws_str, tmp); 285 if (flaws_str) { 286 asprintf(&tmp1, "%s%s",flaws_str, tmp); 287 } else { 288 asprintf(&tmp1, "%s", tmp); 289 } 290 paranoid_free(flaws_str); 291 flaws_str = tmp1; 230 292 res++; 231 293 } … … 237 299 asprintf(&tmp, " %s is tiny!", device); 238 300 log_it(tmp); 239 strcat(flaws_str, tmp); 301 if (flaws_str) { 302 asprintf(&tmp1, "%s%s",flaws_str, tmp); 303 } else { 304 asprintf(&tmp1, "%s", tmp); 305 } 306 paranoid_free(flaws_str); 307 flaws_str = tmp1; 240 308 paranoid_free(tmp); 241 309 res++; … … 250 318 asprintf(&tmp, " %s has a weird mountpoint.", device); 251 319 log_it(tmp); 252 strcat(flaws_str, tmp); 320 if (flaws_str) { 321 asprintf(&tmp1, "%s%s",flaws_str, tmp); 322 } else { 323 asprintf(&tmp1, "%s", tmp); 324 } 325 paranoid_free(flaws_str); 326 flaws_str = tmp1; 253 327 paranoid_free(tmp); 254 328 res++; … … 258 332 asprintf(&tmp, " %s has unsupported format %s.", device, mountlist->el[pos].format); 259 333 log_it(tmp); 260 strcat(flaws_str, tmp); 334 if (flaws_str) { 335 asprintf(&tmp1, "%s%s",flaws_str, tmp); 336 } else { 337 asprintf(&tmp1, "%s", tmp); 338 } 339 paranoid_free(flaws_str); 340 flaws_str = tmp1; 261 341 paranoid_free(tmp); 262 342 res++; … … 278 358 " Can only have up to 'h' in disklabel."); 279 359 log_it(tmp); 280 strcat(flaws_str, tmp); 360 if (flaws_str) { 361 asprintf(&tmp1, "%s%s",flaws_str, tmp); 362 } else { 363 asprintf(&tmp1, "%s", tmp); 364 } 365 paranoid_free(flaws_str); 366 flaws_str = tmp1; 281 367 paranoid_free(tmp); 282 368 res++; … … 294 380 if (!strstr(flaws_str, tmp)) { 295 381 log_it(tmp); 296 strcat(flaws_str, tmp); 382 if (flaws_str) { 383 asprintf(&tmp1, "%s%s",flaws_str, tmp); 384 } else { 385 asprintf(&tmp1, "%s", tmp); 386 } 387 paranoid_free(flaws_str); 388 flaws_str = tmp1; 297 389 res++; 298 390 } … … 304 396 asprintf(&tmp, " %s is tiny!", device); 305 397 log_it(tmp); 306 strcat(flaws_str, tmp); 398 if (flaws_str) { 399 asprintf(&tmp1, "%s%s",flaws_str, tmp); 400 } else { 401 asprintf(&tmp1, "%s", tmp); 402 } 403 paranoid_free(flaws_str); 404 flaws_str = tmp1; 307 405 paranoid_free(tmp); 308 406 res++; … … 317 415 asprintf(&tmp, " %s has a weird mountpoint.", device); 318 416 log_it(tmp); 319 strcat(flaws_str, tmp); 417 if (flaws_str) { 418 asprintf(&tmp1, "%s%s",flaws_str, tmp); 419 } else { 420 asprintf(&tmp1, "%s", tmp); 421 } 422 paranoid_free(flaws_str); 423 flaws_str = tmp1; 320 424 paranoid_free(tmp); 321 425 res++; … … 326 430 asprintf(&tmp, " %s has unsupported format %s.", device, mountlist->el[pos].format); 327 431 log_it(tmp); 328 strcat(flaws_str, tmp); 432 if (flaws_str) { 433 asprintf(&tmp1, "%s%s",flaws_str, tmp); 434 } else { 435 asprintf(&tmp1, "%s", tmp); 436 } 437 paranoid_free(flaws_str); 438 flaws_str = tmp1; 329 439 paranoid_free(tmp); 330 440 res++; … … 347 457 amount_allocated - physical_drive_size, drive); 348 458 log_it(tmp); 349 strcat(flaws_str, tmp); 459 if (flaws_str) { 460 asprintf(&tmp1, "%s%s",flaws_str, tmp); 461 } else { 462 asprintf(&tmp1, "%s", tmp); 463 } 464 paranoid_free(flaws_str); 465 flaws_str = tmp1; 350 466 paranoid_free(tmp); 351 467 res++; … … 354 470 physical_drive_size - amount_allocated, drive); 355 471 log_it(tmp); 356 strcat(flaws_str, tmp); 472 if (flaws_str) { 473 asprintf(&tmp1, "%s%s",flaws_str, tmp); 474 } else { 475 asprintf(&tmp1, "%s", tmp); 476 } 477 paranoid_free(flaws_str); 478 flaws_str = tmp1; 357 479 paranoid_free(tmp); 358 480 } … … 391 513 assert_string_is_neither_NULL_nor_zerolength(drive); 392 514 assert(mountlist != NULL); 393 assert(flaws_str != NULL); 394 395 flaws_str[0] = '\0'; 515 flaws_str = NULL; 516 396 517 prev_part_no = 0; 397 518 // BERLIOS : useless ? tmp[0] = '\0'; … … 402 523 if (physical_drive_size < 0) { 403 524 asprintf(&tmp, " %s does not exist.", drive); 404 strcat(flaws_str, tmp); 525 if (flaws_str) { 526 asprintf(&tmp1, "%s%s",flaws_str, tmp); 527 } else { 528 asprintf(&tmp1, "%s", tmp); 529 } 530 paranoid_free(flaws_str); 531 flaws_str = tmp1; 405 532 res++; 406 533 log_msg(1, tmp); … … 421 548 if (physical_drive_size < 0) { 422 549 asprintf(&tmp, " %s refers to non-existent hardware.", device); 423 strcat(flaws_str, tmp); 550 if (flaws_str) { 551 asprintf(&tmp1, "%s%s",flaws_str, tmp); 552 } else { 553 asprintf(&tmp1, "%s", tmp); 554 } 555 paranoid_free(flaws_str); 556 flaws_str = tmp1; 424 557 res++; 425 558 paranoid_free(tmp); … … 432 565 asprintf(&tmp, " Gap prior to %s.", device); 433 566 log_it(tmp); 434 strcat(flaws_str, tmp); 567 if (flaws_str) { 568 asprintf(&tmp1, "%s%s",flaws_str, tmp); 569 } else { 570 asprintf(&tmp1, "%s", tmp); 571 } 572 paranoid_free(flaws_str); 573 flaws_str = tmp1; 435 574 paranoid_free(tmp); 436 575 res++; … … 440 579 prev_part_no, curr_part_no); 441 580 log_it(tmp); 442 strcat(flaws_str, tmp); 581 if (flaws_str) { 582 asprintf(&tmp1, "%s%s",flaws_str, tmp); 583 } else { 584 asprintf(&tmp1, "%s", tmp); 585 } 586 paranoid_free(flaws_str); 587 flaws_str = tmp1; 443 588 paranoid_free(tmp); 444 589 res++; … … 452 597 asprintf(&tmp, " Partition %s4 is occupied.", drive); 453 598 log_it(tmp); 454 strcat(flaws_str, tmp); 599 if (flaws_str) { 600 asprintf(&tmp1, "%s%s",flaws_str, tmp); 601 } else { 602 asprintf(&tmp1, "%s", tmp); 603 } 604 paranoid_free(flaws_str); 605 flaws_str = tmp1; 455 606 paranoid_free(tmp); 456 607 res++; … … 470 621 if (!strstr(flaws_str, tmp)) { 471 622 log_it(tmp); 472 strcat(flaws_str, tmp); 623 if (flaws_str) { 624 asprintf(&tmp1, "%s%s",flaws_str, tmp); 625 } else { 626 asprintf(&tmp1, "%s", tmp); 627 } 628 paranoid_free(flaws_str); 629 flaws_str = tmp1; 473 630 res++; 474 631 } … … 480 637 asprintf(&tmp, " %s is tiny!", device); 481 638 log_it(tmp); 482 strcat(flaws_str, tmp); 639 if (flaws_str) { 640 asprintf(&tmp1, "%s%s",flaws_str, tmp); 641 } else { 642 asprintf(&tmp1, "%s", tmp); 643 } 644 paranoid_free(flaws_str); 645 flaws_str = tmp1; 483 646 paranoid_free(tmp); 484 647 res++; … … 492 655 asprintf(&tmp, " %s has a weird mountpoint.", device); 493 656 log_it(tmp); 494 strcat(flaws_str, tmp); 657 if (flaws_str) { 658 asprintf(&tmp1, "%s%s",flaws_str, tmp); 659 } else { 660 asprintf(&tmp1, "%s", tmp); 661 } 662 paranoid_free(flaws_str); 663 flaws_str = tmp1; 495 664 paranoid_free(tmp); 496 665 res++; … … 500 669 asprintf(&tmp, " %s has unsupported format %s.", device, mountlist->el[pos].format); 501 670 log_it(tmp); 502 strcat(flaws_str, tmp); 671 if (flaws_str) { 672 asprintf(&tmp1, "%s%s",flaws_str, tmp); 673 } else { 674 asprintf(&tmp1, "%s", tmp); 675 } 676 paranoid_free(flaws_str); 677 flaws_str = tmp1; 503 678 paranoid_free(tmp); 504 679 res++; … … 515 690 amount_allocated - physical_drive_size, drive); 516 691 log_it(tmp); 517 strcat(flaws_str, tmp); 692 if (flaws_str) { 693 asprintf(&tmp1, "%s%s",flaws_str, tmp); 694 } else { 695 asprintf(&tmp1, "%s", tmp); 696 } 697 paranoid_free(flaws_str); 698 flaws_str = tmp1; 518 699 paranoid_free(tmp); 519 700 res++; … … 522 703 physical_drive_size - amount_allocated, drive); 523 704 log_it(tmp); 524 strcat(flaws_str, tmp); 705 if (flaws_str) { 706 asprintf(&tmp1, "%s%s",flaws_str, tmp); 707 } else { 708 asprintf(&tmp1, "%s", tmp); 709 } 710 paranoid_free(flaws_str); 711 flaws_str = tmp1; 525 712 paranoid_free(tmp); 526 713 } … … 582 769 log_it(tmp); 583 770 } else { 584 asprintf(&tmp, " "); 585 // BERLIOS : tmp was NOT initialized ??? 771 // This function allocates tmp 586 772 if (!evaluate_drive_within_mountlist 587 773 (mountlist, drivelist->el[i].device, tmp)) { … … 595 781 } 596 782 res += look_for_duplicate_mountpoints(mountlist, flaws_str); 597 /* res+=look_for_weird_formats(mountlist,flaws_str); .. not necessary, now that we can check to see598 which formarts are actually _supported_ by the kernel */599 /* log_it(flaws_str); */600 783 return (spread_flaws_across_three_lines 601 784 (flaws_str, flaws_str_A, flaws_str_B, flaws_str_C, res)); … … 650 833 651 834 /*@ buffetr ********************************************************* */ 652 char *curr_mountpoint; 653 char *tmp; 835 char *curr_mountpoint = NULL; 836 char *tmp = NULL; 837 char *tmp1 = NULL; 654 838 655 839 assert(mountlist != NULL); 656 840 assert(flaws_str != NULL); 841 657 842 for (currline = 0; currline < mountlist->entries; currline++) { 658 843 asprintf(&curr_mountpoint, mountlist->el[currline].mountpoint); … … 670 855 asprintf(&tmp, " %s %s's.", number_to_text(copies), 671 856 curr_mountpoint); 672 strcat(flaws_str, tmp);673 857 log_it(tmp); 858 asprintf(&tmp1, "%s%s",flaws_str, tmp); 859 paranoid_free(flaws_str); 860 flaws_str = tmp1; 674 861 paranoid_free(tmp); 675 862 res++; 676 863 } 677 864 paranoid_free(curr_mountpoint); 678 }679 return (res);680 }681 682 683 /**684 * Look for strange formats. Does not respect /proc/filesystems.685 * @param mountlist The mountlist to check.686 * @param flaws_str The flaws string to append the results to.687 * @return The number of weird formats found, or 0 for success.688 * @bug Seems orphaned; please remove.689 */690 int691 look_for_weird_formats(struct mountlist_itself *mountlist, char *flaws_str)692 {693 694 /*@ int ************************************************************* */695 int i = 0;696 int res = 0;697 698 /*@ buffers ********************************************************* */699 char *tmp;700 char *format_sz;701 702 assert(mountlist != NULL);703 assert(flaws_str != NULL);704 705 for (i = 0; i < mountlist->entries; i++) {706 asprintf(&format_sz, " %s ", mountlist->el[i].format);707 if (!strstr(SANE_FORMATS, format_sz)708 && strcmp(mountlist->el[i].mountpoint, "image") != 0) {709 asprintf(&tmp, " %s has unknown format.",710 mountlist->el[i].device);711 log_it(tmp);712 strcat(flaws_str, tmp);713 paranoid_free(tmp);714 res++;715 } else if ((!strcmp(mountlist->el[i].format, "swap")716 && strcmp(mountlist->el[i].mountpoint, "swap")717 && strcmp(mountlist->el[i].mountpoint, "none"))718 || (strcmp(mountlist->el[i].format, "swap")719 && !strcmp(mountlist->el[i].mountpoint, "swap")720 && !strcmp(mountlist->el[i].mountpoint, "none"))) {721 asprintf(&tmp, " %s is half-swap.", mountlist->el[i].device);722 log_it(tmp);723 strcat(flaws_str, tmp);724 paranoid_free(tmp);725 res++;726 }727 paranoid_free(format_sz);728 865 } 729 866 return (res);
Note:
See TracChangeset
for help on using the changeset viewer.