mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-27 14:54:52 +02:00
8235489: handle return values of sscanf calls in hotspot
Reviewed-by: clanger, kbarrett
This commit is contained in:
parent
3fe949b2f4
commit
e5b0e366ea
2 changed files with 11 additions and 6 deletions
|
@ -2081,11 +2081,14 @@ int os::get_loaded_modules_info(os::LoadedModulesCallbackFunc callback, void *pa
|
||||||
u8 base, top, offset, inode;
|
u8 base, top, offset, inode;
|
||||||
char permissions[5];
|
char permissions[5];
|
||||||
char device[6];
|
char device[6];
|
||||||
char name[PATH_MAX + 1];
|
char name[sizeof(line)];
|
||||||
|
|
||||||
// Parse fields from line
|
// Parse fields from line
|
||||||
sscanf(line, UINT64_FORMAT_X "-" UINT64_FORMAT_X " %4s " UINT64_FORMAT_X " %7s " INT64_FORMAT " %s",
|
int matches = sscanf(line, UINT64_FORMAT_X "-" UINT64_FORMAT_X " %4s " UINT64_FORMAT_X " %5s " INT64_FORMAT " %s",
|
||||||
&base, &top, permissions, &offset, device, &inode, name);
|
&base, &top, permissions, &offset, device, &inode, name);
|
||||||
|
// the last entry 'name' is empty for some entries, so we might have 6 matches instead of 7 for some lines
|
||||||
|
if (matches < 6) continue;
|
||||||
|
if (matches == 6) name[0] = '\0';
|
||||||
|
|
||||||
// Filter by device id '00:00' so that we only get file system mapped files.
|
// Filter by device id '00:00' so that we only get file system mapped files.
|
||||||
if (strcmp(device, "00:00") != 0) {
|
if (strcmp(device, "00:00") != 0) {
|
||||||
|
|
|
@ -380,10 +380,12 @@ static OracleCommand parse_command_name(const char * line, int* bytes_read) {
|
||||||
|
|
||||||
*bytes_read = 0;
|
*bytes_read = 0;
|
||||||
char command[33];
|
char command[33];
|
||||||
int result = sscanf(line, "%32[a-z]%n", command, bytes_read);
|
int matches = sscanf(line, "%32[a-z]%n", command, bytes_read);
|
||||||
for (uint i = 0; i < ARRAY_SIZE(command_names); i++) {
|
if (matches > 0) {
|
||||||
if (strcmp(command, command_names[i]) == 0) {
|
for (uint i = 0; i < ARRAY_SIZE(command_names); i++) {
|
||||||
return (OracleCommand)i;
|
if (strcmp(command, command_names[i]) == 0) {
|
||||||
|
return (OracleCommand)i;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return UnknownCommand;
|
return UnknownCommand;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue