glocalfile: Use MAXSYMLINKS when following symlinks

Currently, readlink() is used only 12 times when expanding symlinks.
However, kernel uses 40 for this purpose and it is defined as MAXSYMLINKS.
Use that constant if available, or 40. See:
https://github.com/torvalds/linux/include/linux/namei.h.
This commit is contained in:
Ondrej Holy 2018-09-21 16:12:51 +02:00 committed by Philip Withnall
parent 012646ce6b
commit aa5b7206e0

View File

@ -1610,7 +1610,15 @@ expand_symlinks (const char *path,
}
num_recursions++;
if (num_recursions > 12)
#ifdef MAXSYMLINKS
if (num_recursions > MAXSYMLINKS)
#else
/* 40 is used in kernel sources currently:
* https://github.com/torvalds/linux/include/linux/namei.h
*/
if (num_recursions > 40)
#endif
{
g_free (target);
return NULL;