2011/5/27 Jean-Baptiste Rouault <jean-baptiste.rouault(a)diateam.net>:
openvzGetUUID did not work since openvz_readline()
was replaced by getline()
---
src/openvz/openvz_conf.c | 13 ++-----------
1 files changed, 2 insertions(+), 11 deletions(-)
diff --git a/src/openvz/openvz_conf.c b/src/openvz/openvz_conf.c
index 2cccd81..7b939b2 100644
--- a/src/openvz/openvz_conf.c
+++ b/src/openvz/openvz_conf.c
@@ -863,7 +863,6 @@ openvzGetVPSUUID(int vpsid, char *uuidstr, size_t len)
char *conf_file;
char *line = NULL;
size_t line_size = 0;
- ssize_t ret;
char *saveptr = NULL;
char *uuidbuf;
char *iden;
@@ -877,16 +876,8 @@ openvzGetVPSUUID(int vpsid, char *uuidstr, size_t len)
if (fp == NULL)
goto cleanup;
- while (1) {
- ret = getline(&line, &line_size, fp);
- if (ret == -1)
- goto cleanup;
-
- if (ret == 0) { /* EoF, UUID was not found */
- uuidstr[0] = 0;
- break;
- }
-
+ uuidstr[0] = 0;
+ while (getline(&line, &line_size, fp) >= 0) {
iden = strtok_r(line, " ", &saveptr);
uuidbuf = strtok_r(NULL, "\n", &saveptr);
We need distinguish between getline returning -1 because of EOF and
because of another error. I missed this problem in the other
regression fix and posted a follow up patch [1] for this.
I propose the attached patch as v2 for you patch. I assume you have an
OpenVZ setup at hand, could you test this patch?
[1]
https://www.redhat.com/archives/libvir-list/2011-May/msg01788.html
Matthias