diff --git a/stack_walker/stack_walker.cpp b/stack_walker/stack_walker.cpp index 9bf96aa..0d8f3ef 100644 --- a/stack_walker/stack_walker.cpp +++ b/stack_walker/stack_walker.cpp @@ -5,6 +5,7 @@ #include #include #include +#include #include #include #include @@ -44,10 +45,12 @@ std::string readlink_rec(const char* path) { strcpy(buf[1], path); do { - int rc = readlink(buf[parity], buf[1-parity], 1024); + ssize_t rc = readlink(buf[parity], buf[1-parity], 1024); parity = 1 - parity; if(rc < 0) break; + else + buf[parity][rc] = '\0'; } while(true); return std::string(buf[1 - parity]);