Mercurial > hg > truffle
comparison src/share/vm/compiler/compilerOracle.cpp @ 6901:fe4a4ea5bed9
7158804: Improve config file parsing
Summary: Check buffer length when reading
Reviewed-by: dholmes, dcubed
author | kamg |
---|---|
date | Fri, 08 Jun 2012 12:49:12 -0400 |
parents | bf14ed159fb0 |
children | 6b5a3d18fe0e |
comparison
equal
deleted
inserted
replaced
6900:bf14ed159fb0 | 6901:fe4a4ea5bed9 |
---|---|
570 if (stream == NULL) return; | 570 if (stream == NULL) return; |
571 | 571 |
572 char token[1024]; | 572 char token[1024]; |
573 int pos = 0; | 573 int pos = 0; |
574 int c = getc(stream); | 574 int c = getc(stream); |
575 while(c != EOF && pos < (sizeof(token)-1)) { | 575 while(c != EOF && pos < (int)(sizeof(token)-1)) { |
576 if (c == '\n') { | 576 if (c == '\n') { |
577 token[pos++] = '\0'; | 577 token[pos++] = '\0'; |
578 parse_from_line(token); | 578 parse_from_line(token); |
579 pos = 0; | 579 pos = 0; |
580 } else { | 580 } else { |
591 void CompilerOracle::parse_from_string(const char* str, void (*parse_line)(char*)) { | 591 void CompilerOracle::parse_from_string(const char* str, void (*parse_line)(char*)) { |
592 char token[1024]; | 592 char token[1024]; |
593 int pos = 0; | 593 int pos = 0; |
594 const char* sp = str; | 594 const char* sp = str; |
595 int c = *sp++; | 595 int c = *sp++; |
596 while (c != '\0' && pos < (sizeof(token)-1)) { | 596 while (c != '\0' && pos < (int)(sizeof(token)-1)) { |
597 if (c == '\n') { | 597 if (c == '\n') { |
598 token[pos++] = '\0'; | 598 token[pos++] = '\0'; |
599 parse_line(token); | 599 parse_line(token); |
600 pos = 0; | 600 pos = 0; |
601 } else { | 601 } else { |