Ignore:
Timestamp:
Aug 28, 2009, 2:46:29 AM (15 years ago)
Author:
Bruno Cornec
Message:

Change inerface of evaluate_mountlist and spread_flaws_across_three_lines in order to solve bugs linked to strings management in these functions. May fix a restoration crash seen by some customers (backport from 2.2.9)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2.2.10/mondo/src/common/libmondo-string.c

    r2334 r2352  
    599599 * @param flaws_str_B Where to put the second 74-or-less characters.
    600600 * @param flaws_str_C Where to put the rest.
    601  * @param res The result of the original evaluate_mountlist() operation.
    602  * @return TRUE if res == 0, FALSE otherwise.
    603  */
    604 bool
     601 */
     602void
    605603spread_flaws_across_three_lines(char *flaws_str, char *flaws_str_A,
    606                                 char *flaws_str_B, char *flaws_str_C,
    607                                 int res)
     604                                char *flaws_str_B, char *flaws_str_C)
    608605{
    609606
     
    612609
    613610    /*@ initialize ****************************************************** */
    614     assert(flaws_str_A != NULL);
    615     assert(flaws_str_B != NULL);
    616     assert(flaws_str_C != NULL);
    617611    assert(flaws_str != NULL);
    618612
    619     if (!res && !strlen(flaws_str)) {
    620         return (TRUE);
    621     }
    622613    if (strlen(flaws_str) > 0) {
    623         paranoid_free(flaws_str_A);
    624614        mr_asprintf(flaws_str_A, "%s", flaws_str + 1);
    625615    }
    626616    if (strlen(flaws_str_A) >= 74) {
    627617        for (i = 74; flaws_str_A[i] != ' '; i--);
    628         paranoid_free(flaws_str_B);
    629618        mr_asprintf(flaws_str_B, "%s", flaws_str_A + i + 1);
    630619        flaws_str_A[i] = '\0';
     
    632621    if (strlen(flaws_str_B) >= 74) {
    633622        for (i = 74; flaws_str_B[i] != ' '; i--);
    634         paranoid_free(flaws_str_C);
    635623        mr_asprintf(flaws_str_C, "%s", flaws_str_B + i + 1);
    636624        flaws_str_B[i] = '\0';
    637     }
    638     if (res) {
    639         return (FALSE);
    640     } else {
    641         return (TRUE);
    642625    }
    643626}
Note: See TracChangeset for help on using the changeset viewer.