nonce: Don't try to rmdir(NULL) on OOM

If re-initializing the string fails, it will be left in a state
where it has a length of 0 and a NULL buffer. That's valid to
"free", but not valid to pass to rmdir().

Signed-off-by: Simon McVittie <smcv@collabora.com>
Reviewed-by: Philip Withnall <withnall@endlessm.com>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=107194
(cherry picked from commit 294e8b0b67)
This commit is contained in:
Simon McVittie 2018-07-12 13:32:10 +01:00
parent 9cf2d308ce
commit 5ccd36cecb

View file

@ -367,7 +367,7 @@ do_noncefile_create (DBusNonceFile *noncefile,
return TRUE;
on_error:
if (use_subdir)
if (use_subdir && _dbus_string_get_length (&noncefile->dir) != 0)
_dbus_delete_directory (&noncefile->dir, NULL);
_dbus_string_free (&noncefile->dir);
_dbus_string_free (&noncefile->path);