LGTM. I had to stare at it for a while but I think I understand now. On Mon, Jul 11, 2016 at 2:28 PM, Barret Rhoden <[email protected]> wrote:
> I think this is right. It's odd to up the refcnt on every set_dtls. We're > just setting the value. IIUC, the refcnt is meant to keep key alive since > we're storing a ref to it in V. > > This bug was probably harmless - just some wasted memory. You'd need 4 > billion set_dtls calls followed by a poorly timed decref to cause serious > trouble. =) > > Signed-off-by: Barret Rhoden <[email protected]> > --- > user/parlib/dtls.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/user/parlib/dtls.c b/user/parlib/dtls.c > index afd8e2892bb2..4df4d54665ff 100644 > --- a/user/parlib/dtls.c > +++ b/user/parlib/dtls.c > @@ -170,11 +170,11 @@ static inline void *__get_dtls(dtls_data_t > *dtls_data, dtls_key_t key) > static inline void __set_dtls(dtls_data_t *dtls_data, dtls_key_t key, > void *dtls) > { > assert(key); > - __sync_fetch_and_add(&key->ref_count, 1); > > struct dtls_value *v = __get_dtls(dtls_data, key); > if (!v) { > v = __allocate_dtls_value(dtls_data, key); > + __sync_fetch_and_add(&key->ref_count, 1); > v->key = key; > TAILQ_INSERT_HEAD(&dtls_data->list, v, link); > } > -- > 2.8.0.rc3.226.g39d4020 > > -- > You received this message because you are subscribed to the Google Groups > "Akaros" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Akaros" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. For more options, visit https://groups.google.com/d/optout.
