30 lines
776 B
Diff
30 lines
776 B
Diff
|
commit 74eed99c312de05e19b54ba6b5d37a0aeb4ba713
|
||
|
Author: Peter Stephenson <pws@users.sourceforge.net>
|
||
|
Date: Sat Dec 3 23:15:37 2011 +0000
|
||
|
|
||
|
29940: metafy() added null termination even if buffer was not modifiable
|
||
|
|
||
|
diff --git a/Src/utils.c b/Src/utils.c
|
||
|
index 6c2ea98..014cb2f 100644
|
||
|
--- a/Src/utils.c
|
||
|
+++ b/Src/utils.c
|
||
|
@@ -3959,7 +3959,7 @@ metafy(char *buf, int len, int heap)
|
||
|
if (imeta(*e++))
|
||
|
meta++;
|
||
|
|
||
|
- if (meta || heap == META_DUP || heap == META_HEAPDUP) {
|
||
|
+ if (meta || heap == META_DUP || heap == META_HEAPDUP || *e != '\0') {
|
||
|
switch (heap) {
|
||
|
case META_REALLOC:
|
||
|
buf = zrealloc(buf, len + meta + 1);
|
||
|
@@ -4002,8 +4002,8 @@ metafy(char *buf, int len, int heap)
|
||
|
meta--;
|
||
|
}
|
||
|
}
|
||
|
+ *e = '\0';
|
||
|
}
|
||
|
- *e = '\0';
|
||
|
return buf;
|
||
|
}
|
||
|
|