]> xenbits.xensource.com Git - libvirt.git/commitdiff
uuid: fix off-by-one
authorEric Blake <eblake@redhat.com>
Thu, 12 Jan 2012 00:44:49 +0000 (17:44 -0700)
committerEric Blake <eblake@redhat.com>
Thu, 12 Jan 2012 22:18:23 +0000 (15:18 -0700)
Detected by Coverity.  Although unlikely, if we are ever started
with stdin closed, we could reach a situation where we open a
uuid file but then fail to close it, making that file the new
stdin for the rest of the process.

* src/util/uuid.c (getDMISystemUUID): Allow for stdin.

src/util/uuid.c

index 823a2b9136202cd3ca9b48da2438ffc82c15e177..15ba5af181e35cf6988b3cdf281a46b3e18bcf7b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2011 Red Hat, Inc.
+ * Copyright (C) 2007-2012 Red Hat, Inc.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -236,7 +236,7 @@ getDMISystemUUID(char *uuid, int len)
 
     while (paths[i]) {
         int fd = open(paths[i], O_RDONLY);
-        if (fd > 0) {
+        if (fd >= 0) {
             if (saferead(fd, uuid, len) == len) {
                 VIR_FORCE_CLOSE(fd);
                 return 0;