2008-03-30 Bruno Haible <bruno@clisp.org>
+ Avoid failure when attempting to return empty iconv results on some
+ platforms.
+ * lib/striconveh.c (mem_cd_iconveh_internal): In the final memory
+ allocation, don't report ENOMEM when the resulting string is empty.
+
+2008-03-30 Bruno Haible <bruno@clisp.org>
+
Fix buffer overrun.
* lib/vasnprintf.c (VASNPRINTF): If !USE_SNPRINTF && pad_ourselves:
Don't consider the width for tmp_length. Check count against tmp_length
/* Character set conversion with error handling.
- Copyright (C) 2001-2007 Free Software Foundation, Inc.
+ Copyright (C) 2001-2008 Free Software Foundation, Inc.
Written by Bruno Haible and Simon Josefsson.
This program is free software: you can redistribute it and/or modify
/* Now the final memory allocation. */
if (result == tmpbuf)
{
+ size_t memsize = length + extra_alloc;
char *memory;
- memory = (char *) malloc (length + extra_alloc);
+ memory = (char *) malloc (memsize > 0 ? memsize : 1);
if (memory != NULL)
{
memcpy (memory, tmpbuf, length);
else if (result != *resultp && length + extra_alloc < allocated)
{
/* Shrink the allocated memory if possible. */
+ size_t memsize = length + extra_alloc;
char *memory;
- memory = (char *) realloc (result, length + extra_alloc);
+ memory = (char *) realloc (result, memsize > 0 ? memsize : 1);
if (memory != NULL)
result = memory;
}