You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
844 B
32 lines
844 B
From f9344c91a4ca48288bba30dc94a2d712d0659670 Mon Sep 17 00:00:00 2001 |
|
From: Oleg Nesterov <oleg@redhat.com> |
|
Date: Wed, 4 Jul 2012 08:21:15 -0700 |
|
Subject: [PATCH] [perl #113980] pp_syscall: "I32 retval" truncates the |
|
returned value |
|
|
|
I noticed today that syscall(9, ...) (mmap) doesn't work for me. |
|
|
|
The problem is obvious, pp_syscall() uses I32 for retval and the |
|
"long" address doesn't fit into "int". |
|
|
|
The one-liner below should fix the problem. |
|
--- |
|
pp_sys.c | 2 +- |
|
1 file changed, 1 insertion(+), 1 deletion(-) |
|
|
|
diff --git a/pp_sys.c b/pp_sys.c |
|
index fb93732..c5d63ac 100644 |
|
--- a/pp_sys.c |
|
+++ b/pp_sys.c |
|
@@ -5456,7 +5456,7 @@ PP(pp_syscall) |
|
register I32 items = SP - MARK; |
|
unsigned long a[20]; |
|
register I32 i = 0; |
|
- I32 retval = -1; |
|
+ IV retval = -1; |
|
|
|
if (PL_tainting) { |
|
while (++MARK <= SP) { |
|
-- |
|
1.7.11.4 |
|
|
|
|