Changeset View
Changeset View
Standalone View
Standalone View
lib/libnetmap/nmreq.c
Show First 20 Lines • Show All 150 Lines • ▼ Show 20 Lines | nmreq_header_decode(const char **pifname, struct nmreq_header *h, struct nmctx *ctx) | ||||
/* scan for a separator */ | /* scan for a separator */ | ||||
for (; *scan && !index("-*^/@", *scan); scan++) | for (; *scan && !index("-*^/@", *scan); scan++) | ||||
; | ; | ||||
/* search for possible pipe indicators */ | /* search for possible pipe indicators */ | ||||
for (pipesep = vpname; pipesep != scan && !index("{}", *pipesep); pipesep++) | for (pipesep = vpname; pipesep != scan && !index("{}", *pipesep); pipesep++) | ||||
; | ; | ||||
if (!nm_is_identifier(vpname, pipesep)) { | |||||
nmctx_ferror(ctx, "%s: invalid port name '%.*s'", *pifname, | |||||
pipesep - vpname, vpname); | |||||
goto fail; | |||||
} | |||||
if (pipesep != scan) { | if (pipesep != scan) { | ||||
pipesep++; | pipesep++; | ||||
if (*pipesep == '\0') { | if (*pipesep == '\0') { | ||||
nmctx_ferror(ctx, "%s: invalid empty pipe name", *pifname); | nmctx_ferror(ctx, "%s: invalid empty pipe name", *pifname); | ||||
goto fail; | goto fail; | ||||
} | } | ||||
if (!nm_is_identifier(pipesep, scan)) { | if (!nm_is_identifier(pipesep, scan)) { | ||||
nmctx_ferror(ctx, "%s: invalid pipe name '%.*s'", *pifname, scan - pipesep, pipesep); | nmctx_ferror(ctx, "%s: invalid pipe name '%.*s'", *pifname, scan - pipesep, pipesep); | ||||
▲ Show 20 Lines • Show All 550 Lines • Show Last 20 Lines |