mirror of
https://github.com/macvim-dev/macvim.git
synced 2026-06-11 15:37:29 +02:00
ccfilter: uses unbounded strcat()/strcpy()
Problem: ccfilter.c copies compiler output into fixed-size buffers
with strcat() and strcpy(), so very long diagnostics can
overflow.
Solution: replace with snprintf() bounded by LINELENGTH.
Automated security fix generated by Orbis Security AI
closes: #20233
Signed-off-by: orbisai0security <mediratta01.pally@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
committed by
Christian Brabandt
parent
8ae45e4202
commit
403ba303b9
@@ -249,14 +249,15 @@ int main( int argc, char *argv[] )
|
||||
|
||||
stay = (echogets(Line2, echo) != NULL);
|
||||
while ( stay && (Line2[0] == '|') )
|
||||
{ for (p=&Line2[2]; (*p) && (isspace((unsigned char)*p)); p++);
|
||||
strcat( Reason, ": " );
|
||||
strcat( Reason, p );
|
||||
{ size_t n;
|
||||
for (p=&Line2[2]; (*p) && (isspace((unsigned char)*p)); p++);
|
||||
n = strlen(Reason);
|
||||
snprintf( Reason + n, LINELENGTH - n, ": %s", p );
|
||||
Line2[0] = 0;
|
||||
stay = (echogets(Line2, echo) != NULL);
|
||||
}
|
||||
prefetch = 1;
|
||||
strcpy( Line, Line2 );
|
||||
snprintf( Line, LINELENGTH, "%s", Line2 );
|
||||
break;
|
||||
case COMPILER_IRIX:
|
||||
Col = 1;
|
||||
@@ -291,8 +292,8 @@ int main( int argc, char *argv[] )
|
||||
prefetch = 0;
|
||||
}
|
||||
else
|
||||
{ strcat( Line, "\n" );
|
||||
strcat( Line, Line2 );
|
||||
{ size_t n = strlen(Line);
|
||||
snprintf( Line + n, LINELENGTH - n, "\n%s", Line2 );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user