Skip to content

Commit 7bfe656

Browse files
authored
Merge pull request #516 from bjornfor/fix-dangling-pointer
Fix dangling pointer via ft_sem_t name field
2 parents c2a9bc1 + f33dda8 commit 7bfe656

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

src/libfaketime.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -352,7 +352,7 @@ void *ft_dlvsym(void *handle, const char *symbol, const char *version, const cha
352352

353353

354354
typedef struct {
355-
char *name;
355+
char name[256];
356356
#if FT_SEMAPHORE_BACKEND == FT_POSIX
357357
sem_t *sem;
358358
#elif FT_SEMAPHORE_BACKEND == FT_SYSV
@@ -509,7 +509,8 @@ int ft_sem_create(char *name, ft_sem_t *ft_sem)
509509
return -1;
510510
}
511511
#endif
512-
ft_sem->name = name;
512+
strncpy(ft_sem->name, name, sizeof ft_sem->name - 1);
513+
ft_sem->name[sizeof ft_sem->name - 1] = '\0';
513514
return 0;
514515
}
515516

@@ -527,7 +528,8 @@ int ft_sem_open(char *name, ft_sem_t *ft_sem)
527528
return -1;
528529
}
529530
#endif
530-
ft_sem->name = name;
531+
strncpy(ft_sem->name, name, sizeof ft_sem->name - 1);
532+
ft_sem->name[sizeof ft_sem->name - 1] = '\0';
531533
return 0;
532534
}
533535

0 commit comments

Comments
 (0)