mirror of
https://github.com/openjdk/jdk15u.git
synced 2025-12-10 15:41:02 -06:00
8268361: Fix the infinite loop in next_line
Backport-of: 72672277e4dddf8e72f1c705cd5f57de40745635
This commit is contained in:
parent
899d5f8414
commit
8392a311b8
@ -62,8 +62,13 @@ static struct perfbuf {
|
||||
|
||||
#define DEC_64 "%"SCNd64
|
||||
|
||||
static void next_line(FILE *f) {
|
||||
while (fgetc(f) != '\n');
|
||||
static int next_line(FILE *f) {
|
||||
int c;
|
||||
do {
|
||||
c = fgetc(f);
|
||||
} while (c != '\n' && c != EOF);
|
||||
|
||||
return c;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -92,7 +97,10 @@ static int get_totalticks(int which, ticks *pticks) {
|
||||
&iowTicks, &irqTicks, &sirqTicks);
|
||||
|
||||
// Move to next line
|
||||
next_line(fh);
|
||||
if (next_line(fh) == EOF) {
|
||||
fclose(fh);
|
||||
return -2;
|
||||
}
|
||||
|
||||
//find the line for requested cpu faster to just iterate linefeeds?
|
||||
if (which != -1) {
|
||||
@ -105,7 +113,10 @@ static int get_totalticks(int which, ticks *pticks) {
|
||||
fclose(fh);
|
||||
return -2;
|
||||
}
|
||||
next_line(fh);
|
||||
if (next_line(fh) == EOF) {
|
||||
fclose(fh);
|
||||
return -2;
|
||||
}
|
||||
}
|
||||
n = fscanf(fh, "cpu%*d " DEC_64 " " DEC_64 " " DEC_64 " " DEC_64 " "
|
||||
DEC_64 " " DEC_64 " " DEC_64 "\n",
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user