Skip to content

Commit

Permalink
fixed potential integer overflow in file read/write
Browse files Browse the repository at this point in the history
multiplied 1_AddrInt to wherever variable offsetIO is used
  • Loading branch information
TRPrasanna authored May 3, 2024
1 parent 15ed83b commit 2101865
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions Solver/src/libs/mesh/HexMesh.f90
Original file line number Diff line number Diff line change
Expand Up @@ -3078,7 +3078,7 @@ subroutine HexMesh_SaveStatistics(self, iter, time, name, saveGradients)
fID = putSolutionFileInWriteDataMode(trim(name))
do eID = 1, self % no_of_elements
associate( e => self % elements(eID) )
pos = POS_INIT_DATA + (e % globID-1)*5_AddrInt*SIZEOF_INT + no_of_stats_variables*e % offsetIO*SIZEOF_RP
pos = POS_INIT_DATA + (e % globID-1)*5_AddrInt*SIZEOF_INT + 1_AddrInt*no_of_stats_variables*e % offsetIO*SIZEOF_RP
no_stat_s = 9
call writeArray(fid, e % storage % stats % data(1:no_stat_s,:,:,:), position=pos)
allocate(Q(NCONS, 0:e % Nxyz(1), 0:e % Nxyz(2), 0:e % Nxyz(3)))
Expand Down Expand Up @@ -3374,7 +3374,7 @@ subroutine HexMesh_LoadSolution( self, fileName, initial_iteration, initial_time
fID = putSolutionFileInReadDataMode(trim(fileName))
do eID = 1, size(self % elements)
associate( e => self % elements(eID) )
pos = POS_INIT_DATA + (e % globID-1)*5*SIZEOF_INT + padding*e % offsetIO*SIZEOF_RP
pos = POS_INIT_DATA + (e % globID-1)*5*SIZEOF_INT + 1_AddrInt*padding*e % offsetIO*SIZEOF_RP
if (has_sensor) pos = pos + (e % globID - 1) * SIZEOF_RP
read(fID, pos=pos) array_rank
read(fID) no_of_eqs, Nxp1, Nyp1, Nzp1
Expand Down

0 comments on commit 2101865

Please sign in to comment.