/*
- * Copyright (C) 2006-2008 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2006-2009 Andre Noll <maan@tuebingen.mpg.de>
*
* Licensed under the GPL v2. For licencing details see COPYING.
*/
if (ret < 0)
return ret;
fd = ret;
- ret = write_all(fd, buf, &size);
- if (ret < 0)
- goto out;
+ if (size != 0) {
+ ret = write_all(fd, buf, &size);
+ if (ret < 0)
+ goto out;
+ }
ret = 1;
out:
close(fd);
n = vsnprintf(p, size, fmt, ap);
va_end(ap);
/* If that worked, return the string. */
- if (n > -1 && n < size)
+ if (n > -1 && (unsigned)n < size)
break;
/* Else try again with more space. */
if (n > -1) /* glibc 2.1 */