diff --git a/libwrap/sys/puts.c b/libwrap/sys/puts.c index a738e16..9ec4de3 100644 --- a/libwrap/sys/puts.c +++ b/libwrap/sys/puts.c @@ -4,10 +4,12 @@ extern ssize_t _bsp_write(int, const void*, size_t); -int __wrap_puts(const char* s) { - const char* str = s; - while(*str) - str++; - return _bsp_write(STDOUT_FILENO, s, str - s); +int __wrap_puts(const char* s) { + if(!s) return -1; + const char* str = s; + while(*str) + ++str; + *(char*)str='\n'; + return _bsp_write(STDOUT_FILENO, s, (str - s)+1); } -weak_under_alias(puts); + weak_under_alias(puts);