mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-21 20:15:17 +00:00
shunloadtest: Resolve Coverity CHECKED_RETURN error
The shunloadStart function didn't check the status of virInitialize which was flagged by Coverity. Adjust the function and shunloadtest in order to handle the situation.
This commit is contained in:
parent
01757a46ee
commit
995bf76d17
@ -36,16 +36,20 @@ static void shunloadError(void *userData ATTRIBUTE_UNUSED,
|
||||
{
|
||||
}
|
||||
|
||||
void shunloadStart(void);
|
||||
int shunloadStart(void);
|
||||
|
||||
void shunloadStart(void) {
|
||||
int shunloadStart(void) {
|
||||
virConnectPtr conn;
|
||||
|
||||
virSetErrorFunc(NULL, shunloadError);
|
||||
virInitialize();
|
||||
if (virInitialize() < 0)
|
||||
return -1;
|
||||
|
||||
conn = virConnectOpen("test:///default");
|
||||
virDomainDestroy(NULL);
|
||||
if (conn)
|
||||
if (conn) {
|
||||
virConnectClose(conn);
|
||||
return 0;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
@ -56,17 +56,22 @@
|
||||
pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
|
||||
pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
|
||||
bool running = false;
|
||||
bool failstart = false;
|
||||
bool quit = false;
|
||||
|
||||
static void *threadMain(void *arg)
|
||||
{
|
||||
void (*startup)(void) = arg;
|
||||
|
||||
startup();
|
||||
int (*startup)(void) = arg;
|
||||
|
||||
if (startup() < 0) {
|
||||
pthread_mutex_lock(&lock);
|
||||
failstart = true;
|
||||
pthread_cond_signal(&cond);
|
||||
} else {
|
||||
pthread_mutex_lock(&lock);
|
||||
running = true;
|
||||
pthread_cond_signal(&cond);
|
||||
}
|
||||
|
||||
while (!quit) {
|
||||
pthread_cond_wait(&cond, &lock);
|
||||
@ -119,7 +124,7 @@ int main(int argc ATTRIBUTE_UNUSED, char **argv)
|
||||
|
||||
/* Wait for the thread to start and call libvirt */
|
||||
pthread_mutex_lock(&lock);
|
||||
while (!running) {
|
||||
while (!running && !failstart) {
|
||||
pthread_cond_wait(&cond, &lock);
|
||||
}
|
||||
|
||||
@ -138,6 +143,9 @@ int main(int argc ATTRIBUTE_UNUSED, char **argv)
|
||||
* causing a SEGV !
|
||||
*/
|
||||
|
||||
if (failstart)
|
||||
fprintf(stderr, "FAIL to initialize libvirt\n");
|
||||
else
|
||||
fprintf(stderr, "OK\n");
|
||||
|
||||
return 0;
|
||||
|
Loading…
x
Reference in New Issue
Block a user