diff options
Diffstat (limited to 'src/casefiddle.c')
| -rw-r--r-- | src/casefiddle.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/casefiddle.c b/src/casefiddle.c index 4672bd317b9..25a5a3d12b8 100644 --- a/src/casefiddle.c +++ b/src/casefiddle.c | |||
| @@ -110,8 +110,12 @@ casify_object (flag, obj) | |||
| 110 | /* The work is not yet finished because of a multibyte | 110 | /* The work is not yet finished because of a multibyte |
| 111 | character just encountered. */ | 111 | character just encountered. */ |
| 112 | int fromlen, j_byte = i; | 112 | int fromlen, j_byte = i; |
| 113 | char *buf | 113 | char *buf; |
| 114 | = (char *) alloca ((len - i) * MAX_MULTIBYTE_LENGTH + i); | 114 | int bufsize; |
| 115 | USE_SAFE_ALLOCA; | ||
| 116 | |||
| 117 | bufsize = (len - i) * MAX_MULTIBYTE_LENGTH + i; | ||
| 118 | SAFE_ALLOCA (buf, char *, bufsize); | ||
| 115 | 119 | ||
| 116 | /* Copy data already handled. */ | 120 | /* Copy data already handled. */ |
| 117 | bcopy (SDATA (obj), buf, i); | 121 | bcopy (SDATA (obj), buf, i); |
| @@ -133,6 +137,7 @@ casify_object (flag, obj) | |||
| 133 | } | 137 | } |
| 134 | obj = make_multibyte_string (buf, SCHARS (obj), | 138 | obj = make_multibyte_string (buf, SCHARS (obj), |
| 135 | j_byte); | 139 | j_byte); |
| 140 | SAFE_FREE (bufsize); | ||
| 136 | } | 141 | } |
| 137 | return obj; | 142 | return obj; |
| 138 | } | 143 | } |