mirror of
https://github.com/alsa-project/alsa-lib.git
synced 2025-10-29 05:40:25 -04:00
conf: Use ino64_t to save and compare inode numbers
On 32-bit platforms when not using the large-file-support ABI, struct stat64 contains ino64_t which is 64-bit, while ino_t is only 32-bit. snd_config_update_r() checks whether a file has been replaced by saving the ino member of a struct stat64 and comparing it with a previously-saved inode number. On 32-bit platforms, assigning the 64-bit member of struct stat64 to a 32-bit member of struct finfo will truncate it modulo 1<<32, which could conceivably result in libasound not reloading configuration when it should (although the inode number space is large enough to make this failure mode highly unlikely). Fixes: https://github.com/alsa-project/alsa-lib/pull/231 Signed-off-by: Simon McVittie <smcv@collabora.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
This commit is contained in:
parent
d836146e91
commit
87ff5318e3
2 changed files with 2 additions and 1 deletions
|
|
@ -84,6 +84,7 @@
|
||||||
#define scandir64 scandir
|
#define scandir64 scandir
|
||||||
#define versionsort64 versionsort
|
#define versionsort64 versionsort
|
||||||
#define alphasort64 alphasort
|
#define alphasort64 alphasort
|
||||||
|
#define ino64_t ino_t
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define _snd_config_iterator list_head
|
#define _snd_config_iterator list_head
|
||||||
|
|
|
||||||
|
|
@ -3921,7 +3921,7 @@ snd_config_t *snd_config = NULL;
|
||||||
struct finfo {
|
struct finfo {
|
||||||
char *name;
|
char *name;
|
||||||
dev_t dev;
|
dev_t dev;
|
||||||
ino_t ino;
|
ino64_t ino;
|
||||||
time_t mtime;
|
time_t mtime;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue