return 1;
if (start < seqnum)
start = seqnum;
- if (start > end)
+ if (start > end) {
+ fclose(queue_file);
return 1;
- if (end - start > INT_MAX - 1)
+ }
+ if (end - start > INT_MAX - 1) {
+ fclose(queue_file);
return -EOVERFLOW;
+ }
unfinished = (end - start) + 1;
while (unfinished > 0) {
s = syspath;
l = util_strpcpyl(&s, sizeof(syspath), udev_get_sys_path(udev_queue->udev), NULL);
len = readlinkat(dirfd(dir), dent->d_name, s, l);
- if (len < 0 || (size_t)len >= l)
+ if (len <= 0 || (size_t)len == l)
continue;
s[len] = '\0';
dbg(udev_queue->udev, "found '%s' [%s]\n", syspath, dent->d_name);