[libvirt] [PATCH 3/5] virstring: Introduce virVasprintfNOOM and make virVasprintf report OOM
Daniel P. Berrange
berrange at redhat.com
Fri Apr 5 10:45:46 UTC 2013
On Tue, Apr 02, 2013 at 04:22:56PM +0200, Michal Privoznik wrote:
> ---
> src/libvirt_private.syms | 1 +
> src/qemu/qemu_domain.c | 4 +---
> src/util/viraudit.c | 2 +-
> src/util/vircommand.c | 4 ++--
> src/util/virerror.c | 2 +-
> src/util/virlog.c | 2 +-
> src/util/virstring.c | 22 ++++++++++++++++++++--
> src/util/virstring.h | 3 +++
> 8 files changed, 30 insertions(+), 10 deletions(-)
This patch is incomplete, missing a number of places which don't report
errors on enomem. There are probably others that this simple grep does
not detect too.
[berrange at avocado libvirt]$ git grep --after 1 virAsprintf | grep --before 1 ENOMEM
src/util/vircgroup.c: if (virAsprintf(&strval, "%llu", value) == -1)
src/util/vircgroup.c- return -ENOMEM;
--
src/util/vircgroup.c: if (virAsprintf(&strval, "%lld", value) == -1)
src/util/vircgroup.c- return -ENOMEM;
--
src/util/vircgroup.c: if (virAsprintf(&path, "%s/%s", grppath, ent->d_name) == -1) {
src/util/vircgroup.c- rc = -ENOMEM;
--
src/util/vircgroup.c: if (virAsprintf(&path, "%s/%s", rootgrp->path, name) < 0) {
src/util/vircgroup.c- rc = -ENOMEM;
--
src/util/vircgroup.c: if (virAsprintf(&path, "%s/%s", driver->path, name) < 0)
src/util/vircgroup.c- return -ENOMEM;
--
src/util/vircgroup.c: if (virAsprintf(&path, "%s/vcpu%d", driver->path, vcpuid) < 0)
src/util/vircgroup.c- return -ENOMEM;
--
src/util/vircgroup.c: if (virAsprintf(&path, "%s/emulator", driver->path) < 0)
src/util/vircgroup.c- return -ENOMEM;
--
src/util/vircgroup.c: if (virAsprintf(&subpath, "%s/%s", group->path, ent->d_name) < 0) {
src/util/vircgroup.c- rc = -ENOMEM;
--
src/util/virdnsmasq.c: if (virAsprintf(&tmp, "%s.new", path) < 0)
src/util/virdnsmasq.c- return -ENOMEM;
--
src/util/virdnsmasq.c: if (virAsprintf(&tmp, "%s.new", path) < 0)
src/util/virdnsmasq.c- return -ENOMEM;
--
src/util/virpidfile.c: if (virAsprintf(&procPath, "/proc/%lld/exe", (long long)retPid) < 0) {
src/util/virpidfile.c- ret = -ENOMEM;
[berrange at avocado libvirt]$ git grep --after 1 ALLOC | grep --before 1 ENOMEM
src/libvirt.c: if (VIR_ALLOC(lock) < 0)
src/libvirt.c- return ENOMEM;
--
src/node_device/node_device_hal.c: if (VIR_ALLOC(caps) < 0)
src/node_device/node_device_hal.c- return ENOMEM;
--
src/util/viralloc.c: if (VIR_ALLOC_VAR_OVERSIZED(struct_size, count, element_size)) {
src/util/viralloc.c- errno = ENOMEM;
--
src/util/vircgroup.c: if (VIR_ALLOC((*group)) != 0) {
src/util/vircgroup.c- rc = -ENOMEM;
--
src/util/vircommand.c: if (VIR_REALLOC_N(*set, *set_size + 1) < 0) {
src/util/vircommand.c- return ENOMEM;
--
src/util/virthreadpthread.c: if (VIR_ALLOC(args) < 0) {
src/util/virthreadpthread.c- err = ENOMEM;
Daniel
--
|: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org -o- http://virt-manager.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|
More information about the libvir-list
mailing list