xcursor: fix crash when encountering cursor themes with circular dependencies

Port of https://cgit.freedesktop.org/xorg/lib/libXcursor/commit/src?id=f64a8cc1a65dcad4294e2988b402a34175019663
This commit is contained in:
Philipp Ludwig 2018-11-27 23:19:26 +01:00 committed by emersion
parent 05bb440786
commit e7fba556a8
No known key found for this signature in database
GPG Key ID: 0FDE7BE0E88F5E48

View File

@ -839,7 +839,12 @@ XcursorScanTheme (const char *theme, const char *name)
* Recurse to scan inherited themes
*/
for (i = inherits; i && f == NULL; i = _XcursorNextPath (i))
f = XcursorScanTheme (i, name);
{
if (strcmp(i, theme) != 0)
f = XcursorScanTheme (i, name);
else
printf("Not calling XcursorScanTheme because of circular dependency: %s. %s", i, name);
}
if (inherits != NULL)
free (inherits);
return f;