Static analyzer fixes.

This commit is contained in:
Jim Derry 2021-07-30 18:32:34 -04:00
parent bd751a8bcd
commit 5f98ccd606
7 changed files with 15 additions and 18 deletions

View file

@ -76,6 +76,7 @@ void TY_(freeFileSource)( TidyInputSource* inp, Bool closeIt )
if ( closeIt && fin && fin->fp ) if ( closeIt && fin && fin->fp )
fclose( fin->fp ); fclose( fin->fp );
tidyBufFree( &fin->unget ); tidyBufFree( &fin->unget );
if (fin)
TidyFree( fin->unget.allocator, fin ); TidyFree( fin->unget.allocator, fin );
} }

View file

@ -4477,7 +4477,7 @@ void TY_(growStack)(Stack *stack)
{ {
uint new_capacity = stack->capacity * 2; uint new_capacity = stack->capacity * 2;
Node **firstNode = (Node **)TidyAlloc(stack->allocator, new_capacity); Node **firstNode = (Node **)TidyAlloc(stack->allocator, new_capacity * sizeof(Node**));
memcpy( firstNode, stack->firstNode, sizeof(Node**) * (stack->top + 1) ); memcpy( firstNode, stack->firstNode, sizeof(Node**) * (stack->top + 1) );
TidyFree(stack->allocator, stack->firstNode); TidyFree(stack->allocator, stack->firstNode);

View file

@ -792,7 +792,7 @@ TidyMessageImpl *formatStandard(TidyDocImpl* doc, Node *element, Node *node, uin
case TAG_NOT_ALLOWED_IN: case TAG_NOT_ALLOWED_IN:
/* Can we use `rpt` here? No; `element` has a value in every case. */ /* Can we use `rpt` here? No; `element` has a value in every case. */
return TY_(tidyMessageCreateWithNode)(doc, node, code, level, nodedesc, element->element ); return TY_(tidyMessageCreateWithNode)(doc, node, code, level, nodedesc, element ? element->element : NULL );
case INSERTING_TAG: case INSERTING_TAG:
case MISSING_STARTTAG: case MISSING_STARTTAG:
@ -804,7 +804,7 @@ TidyMessageImpl *formatStandard(TidyDocImpl* doc, Node *element, Node *node, uin
case UNEXPECTED_ENDTAG_IN: case UNEXPECTED_ENDTAG_IN:
/* Can we use `rpt` here? No; `element` has a value in every case. */ /* Can we use `rpt` here? No; `element` has a value in every case. */
return TY_(tidyMessageCreateWithNode)(doc, node, code, level, node->element, element->element ); return TY_(tidyMessageCreateWithNode)(doc, node, code, level, node->element, element ? element->element : NULL );
case BAD_CDATA_CONTENT: case BAD_CDATA_CONTENT:
case CONTENT_AFTER_BODY: case CONTENT_AFTER_BODY:
@ -848,16 +848,16 @@ TidyMessageImpl *formatStandard(TidyDocImpl* doc, Node *element, Node *node, uin
case MISSING_ENDTAG_FOR: case MISSING_ENDTAG_FOR:
case MISSING_ENDTAG_OPTIONAL: case MISSING_ENDTAG_OPTIONAL:
case PREVIOUS_LOCATION: case PREVIOUS_LOCATION:
return TY_(tidyMessageCreateWithNode)(doc, rpt, code, level, element->element ); return TY_(tidyMessageCreateWithNode)(doc, rpt, code, level, element? element->element : NULL );
case MISSING_ENDTAG_BEFORE: case MISSING_ENDTAG_BEFORE:
return TY_(tidyMessageCreateWithNode)(doc, rpt, code, level, element->element, nodedesc ); return TY_(tidyMessageCreateWithNode)(doc, rpt, code, level, element? element->element : NULL, nodedesc );
case COERCE_TO_ENDTAG: case COERCE_TO_ENDTAG:
case NON_MATCHING_ENDTAG: case NON_MATCHING_ENDTAG:
return TY_(tidyMessageCreateWithNode)(doc, rpt, code, level, node->element, node->element ); return TY_(tidyMessageCreateWithNode)(doc, rpt, code, level, node->element, node->element );
case TOO_MANY_ELEMENTS_IN: case TOO_MANY_ELEMENTS_IN:
return TY_(tidyMessageCreateWithNode)(doc, rpt, code, level, node->element, element->element); return TY_(tidyMessageCreateWithNode)(doc, rpt, code, level, node->element, element ? element->element : NULL);
} }
@ -1504,7 +1504,7 @@ uint TY_(getNextErrorCode)( TidyIterator* iter )
} }
*iter = (TidyIterator)( itemIndex <= tidyErrorCodeListSize() ? itemIndex : (size_t)0 ); *iter = (TidyIterator)( itemIndex <= tidyErrorCodeListSize() ? itemIndex : (size_t)0 );
return item->value; return item ? item->value : 0;
} }

View file

@ -203,7 +203,6 @@ static TidyMessageImpl *tidyMessageCreateInitV( TidyDocImpl *doc,
i = TY_(tmbstrlen)(result->messageOutput); i = TY_(tmbstrlen)(result->messageOutput);
if (i < sizeMessageBuf) if (i < sizeMessageBuf)
TY_(tmbsnprintf)(result->messageOutput + i, sizeMessageBuf - i, " (%s)", pc ); TY_(tmbsnprintf)(result->messageOutput + i, sizeMessageBuf - i, " (%s)", pc );
i = 0;
} }
result->allowMessage = yes; result->allowMessage = yes;

View file

@ -2345,7 +2345,7 @@ void* TY_(oldParseDefList)(TidyDocImpl* doc, Node *list, GetTokenMode mode)
* unless node has been blown away because the * unless node has been blown away because the
* center was empty, as above. * center was empty, as above.
*/ */
if (parent->last == node) if (parent && parent->last == node)
{ {
list = TY_(InferredTag)(doc, TidyTag_DL); list = TY_(InferredTag)(doc, TidyTag_DL);
TY_(InsertNodeAfterElement)(node, list); TY_(InsertNodeAfterElement)(node, list);
@ -4225,14 +4225,14 @@ void* TY_(oldParseFrameSet)(TidyDocImpl* doc, Node *frameset, GetTokenMode ARG_U
TY_(Report)(doc, frameset, node, INSERTING_TAG); TY_(Report)(doc, frameset, node, INSERTING_TAG);
} }
if (node->type == StartTag && (node->tag->model & CM_FRAMES)) if (node->type == StartTag && (node->tag && node->tag->model & CM_FRAMES))
{ {
TY_(InsertNodeAtEnd)(frameset, node); TY_(InsertNodeAtEnd)(frameset, node);
lexer->excludeBlocks = no; lexer->excludeBlocks = no;
ParseTag(doc, node, MixedContent); ParseTag(doc, node, MixedContent);
continue; continue;
} }
else if (node->type == StartEndTag && (node->tag->model & CM_FRAMES)) else if (node->type == StartEndTag && (node->tag && node->tag->model & CM_FRAMES))
{ {
TY_(InsertNodeAtEnd)(frameset, node); TY_(InsertNodeAtEnd)(frameset, node);
continue; continue;
@ -4345,7 +4345,7 @@ Node* TY_(ParseHTML)( TidyDocImpl *doc, Node *html, GetTokenMode mode, Bool popS
} }
/* We did not expect to find an html closing tag here! */ /* We did not expect to find an html closing tag here! */
if (node->tag == html->tag && node->type == EndTag) if (html && (node->tag == html->tag) && (node->type == EndTag))
{ {
TY_(Report)(doc, html, node, DISCARDING_UNEXPECTED); TY_(Report)(doc, html, node, DISCARDING_UNEXPECTED);
TY_(FreeNode)( doc, node); TY_(FreeNode)( doc, node);
@ -5382,6 +5382,7 @@ Node* TY_(ParseNamespace)( TidyDocImpl* doc, Node *basenode, GetTokenMode mode,
if (outside == no) if (outside == no)
{ {
/* EndTag for a node within the basenode subtree. Roll on... */ /* EndTag for a node within the basenode subtree. Roll on... */
if (n)
n->closed = yes; n->closed = yes;
TY_(FreeNode)(doc, node); TY_(FreeNode)(doc, node);

View file

@ -1190,8 +1190,6 @@ static void PPrintAttribute( TidyDocImpl* doc, uint indent,
indent += xtra; indent += xtra;
PCondFlushLineSmart( doc, indent ); PCondFlushLineSmart( doc, indent );
} }
else
indAttrs = no;
} }
CheckWrapIndent( doc, indent ); CheckWrapIndent( doc, indent );

View file

@ -590,7 +590,6 @@ void TY_(WriteChar)( uint c, StreamOut* out )
if ( !TY_(IsValidUTF16FromUCS4)(c) ) if ( !TY_(IsValidUTF16FromUCS4)(c) )
{ {
/* invalid UTF-16 value */ /* invalid UTF-16 value */
c = 0;
numChars = 0; numChars = 0;
} }
else if ( TY_(IsCombinedChar)(c) ) else if ( TY_(IsCombinedChar)(c) )
@ -599,7 +598,6 @@ void TY_(WriteChar)( uint c, StreamOut* out )
numChars = 2; numChars = 2;
if ( !TY_(SplitSurrogatePair)(c, &theChars[0], &theChars[1]) ) if ( !TY_(SplitSurrogatePair)(c, &theChars[0], &theChars[1]) )
{ {
c = 0;
numChars = 0; numChars = 0;
} }
} }