Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 58633 | Differences between
and this patch

Collapse All | Expand All

(-)net-tools-1.60.orig/lib/interface.c (-21 / +27 lines)
Lines 200-227 Link Here
200
203
201
static char *get_name(char *name, char *p)
204
static char *get_name(char *name, char *p)
202
{
205
{
203
    while (isspace(*p))
206
    /* Extract <name>[:<alias>] from nul-terminated p where p matches
204
	p++;
207
       <name>[:<alias>]: after leading whitespace.
205
    while (*p) {
208
       If match is not made, set name empty and return unchanged p */
206
	if (isspace(*p))
209
    int namestart=0, nameend=0, aliasend;
207
	    break;
210
    while (isspace(p[namestart]))
208
	if (*p == ':') {	/* could be an alias */
211
        namestart++;
209
	    char *dot = p, *dotname = name;
212
    nameend=namestart;
210
	    *name++ = *p++;
213
    while (p[nameend] && p[nameend]!=':' && !isspace(p[nameend]))
211
	    while (isdigit(*p))
214
        nameend++;
212
		*name++ = *p++;
215
    if (p[nameend]==':') {
213
	    if (*p != ':') {	/* it wasn't, backup */
216
        aliasend=nameend+1;
214
		p = dot;
217
        while (p[aliasend] && isdigit(p[aliasend]))
215
		name = dotname;
218
            aliasend++;
216
	    }
219
        if (p[aliasend]==':') {
217
	    if (*p == '\0')
220
            nameend=aliasend;
218
		return NULL;
221
        }
219
	    p++;
222
        if ((nameend-namestart)<IFNAMSIZ) {
220
	    break;
223
            memcpy(name,&p[namestart],nameend-namestart);
221
	}
224
            name[nameend-namestart]='\0';
222
	*name++ = *p++;
225
            p=&p[nameend+1];
226
        } else {
227
            /* Interface name too large */
228
            name[0]='\0';
229
        }
230
    } else {
231
        /* first ':' not found - return empty */
232
        name[0]='\0';
223
    }
233
    }
224
    *name++ = '\0';
225
    return p;
234
    return p;
226
}
235
}
227
236

Return to bug 58633