diff --git a/libguile/strings.c b/libguile/strings.c index 24c82fc..dd70ce1 100644 --- a/libguile/strings.c +++ b/libguile/strings.c @@ -1779,14 +1779,15 @@ scm_to_latin1_stringn (SCM str, size_t *lenp) if (scm_i_is_narrow_string (str)) { + size_t len = scm_i_string_length (str); if (lenp) - *lenp = scm_i_string_length (str); - - result = scm_strdup (scm_i_string_data (str)); + *lenp = len; + result = scm_strndup (scm_i_string_data (str), len); } else result = scm_to_stringn (str, lenp, NULL, - SCM_FAILED_CONVERSION_ERROR); + SCM_FAILED_CONVERSION_ERROR); +} return result; }