[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [dm-devel] Multipath and HSG80 phase 2



I have already sent Christophe a patch for this. The problem was he set p,
moved p, realloced dst, and expected dst to start at the same memory
locating it was at before reallocing, which may or may not be true. The fix
moves the p assignment and movement after the realloc call.


Andy

I looked at the patch, but it is not sufficient.
In the case realloc returns a new pointer the merge_words works well but the original parameter mmp->somethingh will not be changed, so it will point to unreferenced memory!
So, in order to change it, we have to work on its pointer modifying the function prototype and the relative calls, according to the following patch:


76c76
< merge_words (char * dst, char * word, int space)
---
merge_words (char ** dst, char * word, int space)
81,82c81,82
<       len = strlen(dst) + strlen(word) + space;
<       dst = realloc(dst, len + 1);
---
      len = strlen(*dst) + strlen(word) + space;
      *dst = realloc(*dst, len + 1);
84c84
<       if (!dst)
---
if (!*dst)
87c87
<       p = dst;
---
p = *dst;
127c127
<               merge_words(mpp->features, word, 1);
---
merge_words(&mpp->features, word, 1);
170c170
<                       merge_words(mpp->selector, word, 1);
---
merge_words(&mpp->selector, word, 1);

I'm sorry i realized it only after Chris released version 0.4.0 :(
I'm going to continue in testing overall the package and giving you feedback.


Good work

Nicola Ranaldo


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]