Skip to content

Commit fe4525c

Browse files
authored
Merge pull request #43 from djw8605/fix-cache-bounds
Avoid undefined behavior by using a unique_ptr rather than an empty v…
2 parents e55e9f2 + d534e16 commit fe4525c

File tree

1 file changed

+3
-4
lines changed

1 file changed

+3
-4
lines changed

src/scitokens_cache.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22
#include <cstdint>
33
#include <string>
4-
#include <vector>
4+
#include <memory>
55

66
#include <pwd.h>
77
#include <stdlib.h>
@@ -54,12 +54,11 @@ get_cache_file() {
5454
auto bufsize = sysconf(_SC_GETPW_R_SIZE_MAX);
5555
bufsize = (bufsize == -1) ? 16384 : bufsize;
5656

57-
std::vector<char> buf;
58-
buf.reserve(bufsize);
57+
std::unique_ptr<char[]> buf(new char[bufsize]);
5958

6059
std::string home_dir;
6160
struct passwd pwd, *result = NULL;
62-
getpwuid_r(geteuid(), &pwd, &buf[0], bufsize, &result);
61+
getpwuid_r(geteuid(), &pwd, buf.get(), bufsize, &result);
6362
if (result && result->pw_dir) {
6463
home_dir = result->pw_dir;
6564
home_dir += "/.cache";

0 commit comments

Comments
 (0)