# HG changeset patch # User dsamersoff # Date 1425465967 28800 # Node ID 28e75d810c6ed9a0b7b107c739e13bb2f6c7e8e9 # Parent 1f60a119863a02e18f64c994f2bbe136937c6f76 8025667: Warning from b62 for hotspot.agent.src.os.solaris.proc: use after free Summary: move free call few lines down Reviewed-by: dholmes, sspitsyn diff -r 1f60a119863a -r 28e75d810c6e agent/src/os/solaris/proc/saproc.cpp --- a/agent/src/os/solaris/proc/saproc.cpp Mon Mar 02 11:08:09 2015 +0100 +++ b/agent/src/os/solaris/proc/saproc.cpp Wed Mar 04 02:46:07 2015 -0800 @@ -661,30 +661,30 @@ // read FileMapHeader size_t n = read(fd, pheader, sizeof(struct FileMapHeader)); if (n != sizeof(struct FileMapHeader)) { - free(pheader); - close(fd); char errMsg[ERR_MSG_SIZE]; sprintf(errMsg, "unable to read shared archive file map header from %s", classes_jsa); + close(fd); + free(pheader); THROW_NEW_DEBUGGER_EXCEPTION_(errMsg, 1); } // check file magic if (pheader->_magic != 0xf00baba2) { - free(pheader); - close(fd); char errMsg[ERR_MSG_SIZE]; sprintf(errMsg, "%s has bad shared archive magic 0x%x, expecting 0xf00baba2", classes_jsa, pheader->_magic); + close(fd); + free(pheader); THROW_NEW_DEBUGGER_EXCEPTION_(errMsg, 1); } // check version if (pheader->_version != CURRENT_ARCHIVE_VERSION) { - free(pheader); - close(fd); char errMsg[ERR_MSG_SIZE]; sprintf(errMsg, "%s has wrong shared archive version %d, expecting %d", classes_jsa, pheader->_version, CURRENT_ARCHIVE_VERSION); + close(fd); + free(pheader); THROW_NEW_DEBUGGER_EXCEPTION_(errMsg, 1); }