From 411dcbea875a51ff864c44a770290037b47bbfe0 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Fri, 21 Aug 2009 13:44:13 -0700 Subject: [PATCH] uclient: small _getdents cleanup --- src/client/Client.cc | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/client/Client.cc b/src/client/Client.cc index 4083ccb0e9e23..f1f1774d497f5 100644 --- a/src/client/Client.cc +++ b/src/client/Client.cc @@ -3677,7 +3677,9 @@ int Client::_getdents(DIR *dir, char *buf, int buflen, bool fullent) int dlen = ent[pos].d_name.length(); if (fullent) dlen += sizeof(struct dirent); - if (ret + dlen + 1 > buflen) { + else + dlen += 1; // null terminator + if (ret + dlen > buflen) { if (!ret) return -ERANGE; // the buffer is too small for the first name! return ret; @@ -3685,8 +3687,8 @@ int Client::_getdents(DIR *dir, char *buf, int buflen, bool fullent) if (fullent) _readdir_fill_dirent((struct dirent *)(buf + ret), &ent[pos], dirp->offset); else - memcpy(buf + ret, ent[pos].d_name.c_str(), dlen + 1); - ret += dlen + 1; + memcpy(buf + ret, ent[pos].d_name.c_str(), dlen); + ret += dlen; pos++; dirp->offset++; -- 2.39.5