aboutsummaryrefslogtreecommitdiffstats
path: root/eval.c
diff options
context:
space:
mode:
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/eval.c b/eval.c
index cfb1d1e6..675422e2 100644
--- a/eval.c
+++ b/eval.c
@@ -493,8 +493,15 @@ static int
posix_compare(NODE *s1, NODE *s2)
{
int ret = 0;
+ char save1, save2;
size_t l = 0;
+ save1 = s1->stptr[s1->stlen];
+ s1->stptr[s1->stlen] = '\0';
+
+ save2 = s2->stptr[s2->stlen];
+ s2->stptr[s2->stlen] = '\0';
+
if (gawk_mb_cur_max == 1) {
if (strlen(s1->stptr) == s1->stlen && strlen(s2->stptr) == s2->stlen)
ret = strcoll(s1->stptr, s2->stptr);
@@ -556,6 +563,8 @@ posix_compare(NODE *s1, NODE *s2)
}
#endif
+ s1->stptr[s1->stlen] = save1;
+ s2->stptr[s2->stlen] = save2;
return ret;
}