summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilippe M. Chiasson <gozer@ActiveState.com>2006-01-26 05:39:59 -0800
committerNicholas Clark <nick@ccl4.org>2006-01-26 22:03:19 +0000
commite4109c1bce2bbc28583f8ea530a70ada8b63cbc6 (patch)
treedbbb5a7132b99500a4b0b7b001040b46c3485f99
parent87dc9fc5b2e41350c9e5b4355bbefaf32f11a720 (diff)
downloadperl-e4109c1bce2bbc28583f8ea530a70ada8b63cbc6.tar.gz
Change 26781/26830 (SvRTRIM should also write a new '\0' at the end) can cause segfaults
From: "Philippe M. Chiasson" <gozer@ActiveState.com> Message-ID: <43D941AF.1060503@ActiveState.com> Date: Thu, 26 Jan 2006 13:39:59 -0800 p4raw-id: //depot/perl@26952
-rw-r--r--mg.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/mg.c b/mg.c
index 1521241352..8cfe86d96d 100644
--- a/mg.c
+++ b/mg.c
@@ -643,10 +643,12 @@ Perl_magic_len(pTHX_ SV *sv, MAGIC *mg)
#define SvRTRIM(sv) STMT_START { \
STRLEN len = SvCUR(sv); \
char * const p = SvPVX(sv); \
- while (len > 0 && isSPACE(p[len-1])) \
- --len; \
- SvCUR_set(sv, len); \
- p[len] = '\0'; \
+ if (p) { \
+ while (len > 0 && isSPACE(p[len-1])) \
+ --len; \
+ SvCUR_set(sv, len); \
+ p[len] = '\0'; \
+ } \
} STMT_END
int