diff --git a/cfg.mk b/cfg.mk index 4766f0bf46..c7dfb76cad 100644 --- a/cfg.mk +++ b/cfg.mk @@ -992,7 +992,7 @@ sc_prohibit_system_error_with_vir_err: # functions. There's a corresponding exclude to allow usage within tests, # docs, examples, tools, src/libvirt-*.c, and include/libvirt/libvirt-*.h sc_prohibit_virXXXFree: - @prohibit='\bvir(Domain|Network|NodeDevice|StorageVol|StoragePool)Free\b' \ + @prohibit='\bvir(Domain|Network|NodeDevice|StorageVol|StoragePool|Stream)Free\b' \ exclude='sc_prohibit_virXXXFree' \ halt='avoid using 'virXXXFree', use 'virObjectUnref' instead' \ $(_sc_search_regexp) @@ -1186,4 +1186,4 @@ exclude_file_name_regexp--sc_prohibit_devname = \ ^(tools/virsh.pod|cfg.mk|docs/.*)$$ exclude_file_name_regexp--sc_prohibit_virXXXFree = \ - ^(docs/|tests/|examples/|tools/|cfg.mk|src/test/test_driver.c|src/libvirt_public.syms|include/libvirt/libvirt-(domain|network|nodedev|storage).h|src/libvirt-(domain|qemu|network|nodedev|storage).c$$) + ^(docs/|tests/|examples/|tools/|cfg.mk|src/test/test_driver.c|src/libvirt_public.syms|include/libvirt/libvirt-(domain|network|nodedev|storage|stream).h|src/libvirt-(domain|qemu|network|nodedev|storage|stream).c$$) diff --git a/daemon/remote.c b/daemon/remote.c index fe1b13c386..b2f1c4614f 100644 --- a/daemon/remote.c +++ b/daemon/remote.c @@ -5414,7 +5414,7 @@ remoteDispatchDomainMigratePrepareTunnel3Params(virNetServerPtr server ATTRIBUTE virStreamAbort(st); daemonFreeClientStream(client, stream); } else { - virStreamFree(st); + virObjectUnref(st); } } return rv; diff --git a/daemon/stream.c b/daemon/stream.c index 88bc85871f..dfe0bf904a 100644 --- a/daemon/stream.c +++ b/daemon/stream.c @@ -383,7 +383,7 @@ int daemonFreeClientStream(virNetServerClientPtr client, msg = tmp; } - virStreamFree(stream->st); + virObjectUnref(stream->st); VIR_FREE(stream); return ret; diff --git a/src/conf/virchrdev.c b/src/conf/virchrdev.c index 022fe71e8a..5f28f2978b 100644 --- a/src/conf/virchrdev.c +++ b/src/conf/virchrdev.c @@ -221,7 +221,7 @@ static void virChrdevHashEntryFree(void *data, virStreamPtr st = data; /* free stream reference */ - virStreamFree(st); + virObjectUnref(st); /* delete lock file */ virChrdevLockFileRemove(dev); @@ -346,7 +346,6 @@ int virChrdevOpen(virChrdevsPtr devs, char *path; int ret; bool added = false; - virErrorPtr savedError; switch (source->type) { case VIR_DOMAIN_CHR_TYPE_PTY: @@ -434,15 +433,10 @@ int virChrdevOpen(virChrdevsPtr devs, return 0; error: - savedError = virSaveLastError(); - if (added) virHashRemoveEntry(devs->hash, path); else - virStreamFree(st); - - virSetError(savedError); - virFreeError(savedError); + virObjectUnref(st); if (cbdata) VIR_FREE(cbdata->path); diff --git a/src/fdstream.c b/src/fdstream.c index 9ff7e2a362..18bd359739 100644 --- a/src/fdstream.c +++ b/src/fdstream.c @@ -187,8 +187,7 @@ static void virFDStreamEvent(int watch ATTRIBUTE_UNUSED, static void virFDStreamCallbackFree(void *opaque) { - virStreamPtr st = opaque; - virStreamFree(st); + virObjectUnref(opaque); } diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c index 830e1d4757..2eb251a1a6 100644 --- a/src/remote/remote_driver.c +++ b/src/remote/remote_driver.c @@ -5691,7 +5691,7 @@ static void remoteStreamCallbackFree(void *opaque) if (!cbdata->cb && cbdata->ff) (cbdata->ff)(cbdata->opaque); - virStreamFree(cbdata->st); + virObjectUnref(cbdata->st); VIR_FREE(opaque); }