Skip to content

Commit f56fbf5

Browse files
committed
Fix prefix and repo_path memory management
1 parent af7db20 commit f56fbf5

File tree

1 file changed

+14
-8
lines changed

1 file changed

+14
-8
lines changed

redis/hiredis.c

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -34,16 +34,16 @@
3434
typedef struct {
3535
git_odb_backend parent;
3636

37-
const char *prefix;
38-
const char *repo_path;
37+
char *prefix;
38+
char *repo_path;
3939
redisContext *db;
4040
} hiredis_odb_backend;
4141

4242
typedef struct {
4343
git_refdb_backend parent;
4444

45-
const char *prefix;
46-
const char *repo_path;
45+
char *prefix;
46+
char *repo_path;
4747
redisContext *db;
4848
} hiredis_refdb_backend;
4949

@@ -215,6 +215,9 @@ void hiredis_odb_backend__free(git_odb_backend *_backend)
215215
assert(_backend);
216216
backend = (hiredis_odb_backend *) _backend;
217217

218+
free(backend->repo_path);
219+
free(backend->prefix);
220+
218221
redisFree(backend->db);
219222

220223
free(backend);
@@ -449,6 +452,9 @@ void hiredis_refdb_backend__free(git_refdb_backend *_backend)
449452
assert(_backend);
450453
backend = (hiredis_refdb_backend *) _backend;
451454

455+
free(backend->repo_path);
456+
free(backend->prefix);
457+
452458
redisFree(backend->db);
453459

454460
free(backend);
@@ -517,8 +523,8 @@ int git_odb_backend_hiredis(git_odb_backend **backend_out, const char* prefix, c
517523

518524
backend->db = sharedConnection;
519525

520-
backend->prefix = prefix;
521-
backend->repo_path = path;
526+
backend->prefix = strdup(prefix);
527+
backend->repo_path = strdup(path);
522528

523529
backend->parent.version = 1;
524530

@@ -566,8 +572,8 @@ int git_refdb_backend_hiredis(git_refdb_backend **backend_out, const char* prefi
566572

567573
backend->db = sharedConnection;
568574

569-
backend->prefix = prefix;
570-
backend->repo_path = path;
575+
backend->prefix = strdup(prefix);
576+
backend->repo_path = strdup(path);
571577

572578
backend->parent.exists = &hiredis_refdb_backend__exists;
573579
backend->parent.lookup = &hiredis_refdb_backend__lookup;

0 commit comments

Comments
 (0)