mirror of
https://github.com/Zenithsiz/ftmemsim-valgrind.git
synced 2026-02-07 04:38:00 +00:00
Fix two safe_to_deref/sizeof mismatches in sys_sigaction/sys_rt_sigaction.
Before dereferencing the sigaction pointer and reading the fields we need to make sure the whole struct is safe_to_deref. We were using the size of the pointer, but needed the size of the struct. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16258
This commit is contained in:
parent
4b69b40852
commit
add127dbf9
@ -3715,7 +3715,7 @@ PRE(sys_sigaction)
|
||||
PRE_MEM_READ( "sigaction(act->sa_handler)", (Addr)&sa->ksa_handler, sizeof(sa->ksa_handler));
|
||||
PRE_MEM_READ( "sigaction(act->sa_mask)", (Addr)&sa->sa_mask, sizeof(sa->sa_mask));
|
||||
PRE_MEM_READ( "sigaction(act->sa_flags)", (Addr)&sa->sa_flags, sizeof(sa->sa_flags));
|
||||
if (ML_(safe_to_deref)(sa,sizeof(sa))
|
||||
if (ML_(safe_to_deref)(sa,sizeof(struct vki_old_sigaction))
|
||||
&& (sa->sa_flags & VKI_SA_RESTORER))
|
||||
PRE_MEM_READ( "sigaction(act->sa_restorer)", (Addr)&sa->sa_restorer, sizeof(sa->sa_restorer));
|
||||
}
|
||||
@ -3828,7 +3828,7 @@ PRE(sys_rt_sigaction)
|
||||
PRE_MEM_READ( "rt_sigaction(act->sa_handler)", (Addr)&sa->ksa_handler, sizeof(sa->ksa_handler));
|
||||
PRE_MEM_READ( "rt_sigaction(act->sa_mask)", (Addr)&sa->sa_mask, sizeof(sa->sa_mask));
|
||||
PRE_MEM_READ( "rt_sigaction(act->sa_flags)", (Addr)&sa->sa_flags, sizeof(sa->sa_flags));
|
||||
if (ML_(safe_to_deref)(sa,sizeof(sa))
|
||||
if (ML_(safe_to_deref)(sa,sizeof(vki_sigaction_toK_t))
|
||||
&& (sa->sa_flags & VKI_SA_RESTORER))
|
||||
PRE_MEM_READ( "rt_sigaction(act->sa_restorer)", (Addr)&sa->sa_restorer, sizeof(sa->sa_restorer));
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user