Unix Technical Forum

Re: interface groups

This is a discussion on Re: interface groups within the mailing.openbsd.tech forums, part of the OpenBSD category; --> * Artur Grabowski <art@blahonga.org> [2004-06-22 21:34]: > Henning Brauer <lists-openbsdtech@bsws.de> writes: > > > * Philipp Buehler <pb@openbsd.org> [2004-06-22 ...


Go Back   Unix Technical Forum > Unix Operating Systems > OpenBSD > mailing.openbsd.tech

Register FAQ Members List Calendar Search Today's Posts Mark Forums Read
  #1 (permalink)  
Old 02-18-2008, 07:05 AM
Henning Brauer
 
Posts: n/a
Default Re: interface groups

* Artur Grabowski <art@blahonga.org> [2004-06-22 21:34]:
> Henning Brauer <lists-openbsdtech@bsws.de> writes:
>
> > * Philipp Buehler <pb@openbsd.org> [2004-06-22 10:06]:
> > > + TAILQ_FOREACH(ifgp, &ifp->if_groups, group_list) {
> > > + TAILQ_REMOVE(&ifp->if_groups, ifgp, group_list);

> >
> > no... see manpage
> >
> > NOTES
> > Trying to free a list in the following way is a common error:
> >
> > LIST_FOREACH(var, head, entry)
> > free(var);
> > free(head);
> >
> > Since var is free'd, the FOREACH() macro refers to a pointer that may
> > have been reallocated already. Proper code needs a second variable.
> >
> > for (var = LIST_FIRST(head); var != LIST_END(head); var = nxt) {
> > nxt = LIST_NEXT(var, entry);
> > free(var);
> > }
> > LIST_INIT(head); /* to put the list back in order */

>
> Stop giving bad advice.
>
> while ((foo = TAILQ_FIRST(..)) != NULL) {
> TAILQ_REMOVE(foo ...);
> free(foo);
> }


the manpage example is bad for draining the entire queue.
the point however is that TAILQ_REMOVE in a TAILQ_FOREACH loop is
going to bomb out.

--
http://2suck.net/hhwl.html - http://www.bsws.de/
Unix is very simple, but it takes a genius to understand the simplicity.
(Dennis Ritchie)

Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On
Forum Jump


All times are GMT. The time now is 03:10 AM.


Powered by vBulletin® Version 3.6.5
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.2.0
www.UnixAdminTalk.com