diff --git a/rewrite.c b/rewrite.c index b383103..b292374 100644 --- a/rewrite.c +++ b/rewrite.c @@ -464,6 +464,8 @@ int dorewritemodvattr(struct tlv *vendortlv, struct modattr *modvattr) { for (offset = 4; offset < vendortlv->l; offset += ATTRLEN(vendortlv->v+offset)) { if (ATTRTYPE(vendortlv->v+offset) == modvattr->t) { tmpattr = maketlv(ATTRTYPE(vendortlv->v+offset), ATTRVALLEN(vendortlv->v+offset), ATTRVAL(vendortlv->v+offset)); + if (!tmpattr) + return 0; if (dorewritemodattr(tmpattr, modvattr)) { int size_diff = tmpattr->l - ATTRVALLEN(vendortlv->v+offset); int rem_size = vendortlv->l - offset - ATTRLEN(vendortlv->v+offset);