Catch lseek errors. Return on read errors.
Fixes: CID 1593154
Fixes: CID 1593157
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Message-ID: <
20250319141159.
1461621-4-kraxel@redhat.com>
QObject *qobj;
Visitor *v;
char *str;
- size_t len;
+ ssize_t len;
int rc;
if (uv->jsonfd == -1) {
}
len = lseek(uv->jsonfd, 0, SEEK_END);
+ if (len < 0) {
+ warn_report("%s: lseek error", __func__);
+ return;
+ }
if (len == 0) {
+ /* empty file */
return;
}
rc = read(uv->jsonfd, str, len);
if (rc != len) {
warn_report("%s: read error", __func__);
+ g_free(str);
+ return;
}
str[len] = 0;