From: Guy Menanteau <[email protected]>

---
 src/ppc64/Ginit.c |    8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/src/ppc64/Ginit.c b/src/ppc64/Ginit.c
index 0740961..3fdeaee 100644
--- a/src/ppc64/Ginit.c
+++ b/src/ppc64/Ginit.c
@@ -169,13 +169,11 @@ access_fpreg (unw_addr_space_t as, unw_regnum_t reg, 
unw_fpreg_t *val,
   ucontext_t *uc = arg;
   unw_fpreg_t *addr;
 
-  if ((reg - UNW_PPC64_F0) < 0)
+  /* Allow only 32 fregs and 32 vregs */
+  if ( !(  ((unsigned) (reg - UNW_PPC64_F0) < 32)
+         ||((unsigned) (reg - UNW_PPC64_V0) < 32)))
     goto badreg;
 
-  if ((unsigned) (reg - UNW_PPC64_V0) >= 32)
-    goto badreg;
-
-
   addr = uc_addr (uc, reg);
   if (!addr)
     goto badreg;
-- 
1.7.9.5


_______________________________________________
Libunwind-devel mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/libunwind-devel

Reply via email to