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 {