Revision a9de6d01
b/qga/commands-posix.c | ||
---|---|---|
111 | 111 |
QTAILQ_INSERT_TAIL(&guest_file_state.filehandles, gfh, next); |
112 | 112 |
} |
113 | 113 |
|
114 |
static GuestFileHandle *guest_file_handle_find(int64_t id) |
|
114 |
static GuestFileHandle *guest_file_handle_find(int64_t id, Error **err)
|
|
115 | 115 |
{ |
116 | 116 |
GuestFileHandle *gfh; |
117 | 117 |
|
... | ... | |
122 | 122 |
} |
123 | 123 |
} |
124 | 124 |
|
125 |
error_setg(err, "handle '%" PRId64 "' has not been found", id); |
|
125 | 126 |
return NULL; |
126 | 127 |
} |
127 | 128 |
|
... | ... | |
160 | 161 |
|
161 | 162 |
void qmp_guest_file_close(int64_t handle, Error **err) |
162 | 163 |
{ |
163 |
GuestFileHandle *gfh = guest_file_handle_find(handle); |
|
164 |
GuestFileHandle *gfh = guest_file_handle_find(handle, err);
|
|
164 | 165 |
int ret; |
165 | 166 |
|
166 | 167 |
slog("guest-file-close called, handle: %ld", handle); |
167 | 168 |
if (!gfh) { |
168 |
error_set(err, QERR_FD_NOT_FOUND, "handle"); |
|
169 | 169 |
return; |
170 | 170 |
} |
171 | 171 |
|
... | ... | |
182 | 182 |
struct GuestFileRead *qmp_guest_file_read(int64_t handle, bool has_count, |
183 | 183 |
int64_t count, Error **err) |
184 | 184 |
{ |
185 |
GuestFileHandle *gfh = guest_file_handle_find(handle); |
|
185 |
GuestFileHandle *gfh = guest_file_handle_find(handle, err);
|
|
186 | 186 |
GuestFileRead *read_data = NULL; |
187 | 187 |
guchar *buf; |
188 | 188 |
FILE *fh; |
189 | 189 |
size_t read_count; |
190 | 190 |
|
191 | 191 |
if (!gfh) { |
192 |
error_set(err, QERR_FD_NOT_FOUND, "handle"); |
|
193 | 192 |
return NULL; |
194 | 193 |
} |
195 | 194 |
|
... | ... | |
228 | 227 |
guchar *buf; |
229 | 228 |
gsize buf_len; |
230 | 229 |
int write_count; |
231 |
GuestFileHandle *gfh = guest_file_handle_find(handle); |
|
230 |
GuestFileHandle *gfh = guest_file_handle_find(handle, err);
|
|
232 | 231 |
FILE *fh; |
233 | 232 |
|
234 | 233 |
if (!gfh) { |
235 |
error_set(err, QERR_FD_NOT_FOUND, "handle"); |
|
236 | 234 |
return NULL; |
237 | 235 |
} |
238 | 236 |
|
... | ... | |
265 | 263 |
struct GuestFileSeek *qmp_guest_file_seek(int64_t handle, int64_t offset, |
266 | 264 |
int64_t whence, Error **err) |
267 | 265 |
{ |
268 |
GuestFileHandle *gfh = guest_file_handle_find(handle); |
|
266 |
GuestFileHandle *gfh = guest_file_handle_find(handle, err);
|
|
269 | 267 |
GuestFileSeek *seek_data = NULL; |
270 | 268 |
FILE *fh; |
271 | 269 |
int ret; |
272 | 270 |
|
273 | 271 |
if (!gfh) { |
274 |
error_set(err, QERR_FD_NOT_FOUND, "handle"); |
|
275 | 272 |
return NULL; |
276 | 273 |
} |
277 | 274 |
|
... | ... | |
291 | 288 |
|
292 | 289 |
void qmp_guest_file_flush(int64_t handle, Error **err) |
293 | 290 |
{ |
294 |
GuestFileHandle *gfh = guest_file_handle_find(handle); |
|
291 |
GuestFileHandle *gfh = guest_file_handle_find(handle, err);
|
|
295 | 292 |
FILE *fh; |
296 | 293 |
int ret; |
297 | 294 |
|
298 | 295 |
if (!gfh) { |
299 |
error_set(err, QERR_FD_NOT_FOUND, "handle"); |
|
300 | 296 |
return; |
301 | 297 |
} |
302 | 298 |
|
Also available in: Unified diff