mirror of
https://github.com/xcat2/xNBA.git
synced 2025-02-12 00:29:43 +00:00
[script] Accept labels on lines terminated with CRLF
CRLF line terminators are allowed in scripts; the carriage return is simply interpreted as trailing whitespace and so is ignored. This fails on lines containing script labels, since the label-finding code checks for a line containing only the ":" marker and the label itself (without any trailing whitespace). Fix by allowing a label to be terminated by either a NUL or a whitespace character. Reported-by: Bovey Christian <Christian.Bovey@chuv.ch> Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
parent
8a86a848dc
commit
174df77359
@ -221,11 +221,17 @@ static const char *goto_label;
|
||||
* @ret rc Return status code
|
||||
*/
|
||||
static int goto_find_label ( const char *line ) {
|
||||
size_t len = strlen ( goto_label );
|
||||
|
||||
if ( line[0] != ':' )
|
||||
return -ENOENT;
|
||||
if ( strcmp ( goto_label, &line[1] ) != 0 )
|
||||
|
||||
if ( strncmp ( goto_label, &line[1], len ) != 0 )
|
||||
return -ENOENT;
|
||||
|
||||
if ( line[ 1 + len ] && ! isspace ( line[ 1 + len ] ) )
|
||||
return -ENOENT;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user