time_t mtsecs = ts[1].tv_sec;
long mtnsecs = ts[1].tv_nsec;
+#ifdef UTIME_NOW
if (atnsecs == UTIME_NOW)
atnsecs = -1;
+#endif
+#ifdef UTIME_OMIT
if (atnsecs == UTIME_OMIT)
atnsecs = -2;
+#endif
+#ifdef UTIME_NOW
if (mtnsecs == UTIME_NOW)
mtnsecs = -1;
+#endif
+#ifdef UTIME_OMIT
if (mtnsecs == UTIME_OMIT)
mtnsecs = -2;
+#endif
r = guestfs_utimens (g, path, atsecs, atnsecs, mtsecs, mtnsecs);
if (r == -1)
if (size > limit)
size = limit;
- /* Note the correct error handling here is tricky, because in the
- * case where the call returns a zero-length buffer, it might return
- * NULL. However it won't adjust rsize along the error path, so we
- * can set rsize to something beforehand and use that as a flag.
- */
- rsize = 1;
r = guestfs_pread (g, path, size, offset, &rsize);
- if (rsize == 1 && r == NULL)
+ if (r == NULL)
return error ();
/* This should never happen, but at least it stops us overflowing