[alsa-devel] [PATCH] terminate readlink result string
readlink does not guarantee that its result string is nul-terminated. Instead, increase the buffer by one byte to make sure that we can add '\0' at the end. --- alsactl/init_sysfs.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/alsactl/init_sysfs.c b/alsactl/init_sysfs.c index 0cbada2..5c789b6 100644 --- a/alsactl/init_sysfs.c +++ b/alsactl/init_sysfs.c @@ -108,11 +108,11 @@ static char *sysfs_attr_get_value(const char *devpath, const char *attr_name)
if (S_ISLNK(statbuf.st_mode)) { /* links return the last element of the target path */ - char link_target[PATH_SIZE]; + char link_target[PATH_SIZE + 1]; int len; const char *pos;
- len = readlink(path_full, link_target, sizeof(link_target)); + len = readlink(path_full, link_target, sizeof(link_target) - 1); if (len > 0) { link_target[len] = '\0'; pos = strrchr(link_target, '/');
On Sat, 11 Jul 2015 13:23:57 +0200, Tobias Stoeckmann wrote:
readlink does not guarantee that its result string is nul-terminated. Instead, increase the buffer by one byte to make sure that we can add '\0' at the end.
Applied, thanks.
Takashi
alsactl/init_sysfs.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/alsactl/init_sysfs.c b/alsactl/init_sysfs.c index 0cbada2..5c789b6 100644 --- a/alsactl/init_sysfs.c +++ b/alsactl/init_sysfs.c @@ -108,11 +108,11 @@ static char *sysfs_attr_get_value(const char *devpath, const char *attr_name)
if (S_ISLNK(statbuf.st_mode)) { /* links return the last element of the target path */
char link_target[PATH_SIZE];
int len; const char *pos;char link_target[PATH_SIZE + 1];
len = readlink(path_full, link_target, sizeof(link_target));
if (len > 0) { link_target[len] = '\0'; pos = strrchr(link_target, '/');len = readlink(path_full, link_target, sizeof(link_target) - 1);
-- 2.4.5
Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
participants (2)
-
Takashi Iwai
-
Tobias Stoeckmann