chiark / gitweb /
tmpfiles: compare return against correct errno
[elogind.git] / src / tmpfiles / tmpfiles.c
index 7eafd6bb30791eb3d1922d58f73a4fc9ccf06d2c..8108b4304298ca6c18b4374ffc2d481179ccfb7c 100644 (file)
@@ -259,7 +259,7 @@ static int dir_is_mount_point(DIR *d, const char *subdir) {
 
         /* got only one handle; assume different mount points if one
          * of both queries was not supported by the filesystem */
-        if (r_p == -ENOSYS || r_p == -ENOTSUP || r == -ENOSYS || r == -ENOTSUP)
+        if (r_p == -ENOSYS || r_p == -EOPNOTSUPP || r == -ENOSYS || r == -EOPNOTSUPP)
                 return true;
 
         /* return error */
@@ -1064,7 +1064,7 @@ static int clean_item(Item *i) {
 
 static int process_item(Item *i) {
         int r, q, p;
-        char prefix[PATH_MAX];
+        _cleanup_free_ char *prefix = NULL;
 
         assert(i);
 
@@ -1073,6 +1073,10 @@ static int process_item(Item *i) {
 
         i->done = true;
 
+        prefix = malloc(strlen(i->path) + 1);
+        if (!prefix)
+                return log_oom();
+
         PATH_FOREACH_PREFIX(prefix, i->path) {
                 Item *j;