mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-10 07:25:56 -06:00
uuid: fix off-by-one
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.
This commit is contained in:
parent
d98a3d4a59
commit
0327ff0798
@ -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
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
@ -236,7 +236,7 @@ getDMISystemUUID(char *uuid, int len)
|
|||||||
|
|
||||||
while (paths[i]) {
|
while (paths[i]) {
|
||||||
int fd = open(paths[i], O_RDONLY);
|
int fd = open(paths[i], O_RDONLY);
|
||||||
if (fd > 0) {
|
if (fd >= 0) {
|
||||||
if (saferead(fd, uuid, len) == len) {
|
if (saferead(fd, uuid, len) == len) {
|
||||||
VIR_FORCE_CLOSE(fd);
|
VIR_FORCE_CLOSE(fd);
|
||||||
return 0;
|
return 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user