mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-03-31 17:10:47 +08:00
[svn-r4948] Purpose:
Bug fix Description: When a block was preempted from the chunk cache, it is possible that one of the pointers in the algorithm is invalidated and would generate a core dump. Solution: Re-calculate the internal pointer and move the the preemption after the re-calc. Platforms tested: FreeBSD 4.5 (sleipnir)
This commit is contained in:
parent
2c74598cbf
commit
6e209992ee
@ -1276,10 +1276,11 @@ H5F_istore_prune (H5F_t *f, size_t size)
|
||||
}
|
||||
|
||||
if (cur) {
|
||||
if (H5F_istore_preempt(f, cur)<0) nerrors++;
|
||||
for (j=0; j<nmeth; j++) {
|
||||
if (p[j]==cur) p[j] = NULL;
|
||||
if (n[j]==cur) n[j] = cur->next;
|
||||
}
|
||||
if (H5F_istore_preempt(f, cur)<0) nerrors++;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1276,10 +1276,11 @@ H5F_istore_prune (H5F_t *f, size_t size)
|
||||
}
|
||||
|
||||
if (cur) {
|
||||
if (H5F_istore_preempt(f, cur)<0) nerrors++;
|
||||
for (j=0; j<nmeth; j++) {
|
||||
if (p[j]==cur) p[j] = NULL;
|
||||
if (n[j]==cur) n[j] = cur->next;
|
||||
}
|
||||
if (H5F_istore_preempt(f, cur)<0) nerrors++;
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user