Hi Martin, On Tue, Sep 16, 2014 at 01:40:24PM +0100, Martin Townsend wrote: ... > > Yes I see the problem now, maybe it's better to revert back to skb_inout, > less chance of introducing bugs and then we have a well defined return value. >
No problem, for me it's okay, if this is okay for Jukka, we can change it later to a better behaviour. Jukka please answer what you think about this. I also did a small c example because this now: char *foo(char *buf) { char *new; if (some_error) return NULL; if (some_error) return NULL; new = expand(buf, 23); if (!new) return NULL; free(buf); buf = new; /* buf is now different than the parameter buf */ if (some_error) return NULL; return buf; } int main(int argc, const char *argv[]) { char *local_buf = malloc(42); char *buf; buf = foo(local_buf); if (!buf) { /* BUG */ /* we don't know if local_buf is still valid. */ free(local_buf); } return 0; } I think if you do buf = foo(buf) you can rescue it but this doesn't look like a clean solution for me. - Alex ------------------------------------------------------------------------------ Want excitement? Manually upgrade your production database. When you want reliability, choose Perforce. Perforce version control. Predictably reliable. http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk _______________________________________________ Linux-zigbee-devel mailing list Linux-zigbee-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-zigbee-devel