
On Tue, Nov 02, 2010 at 05:36:46PM +0100, Daniel Veillard wrote:
+virSysinfoDefPtr +virSysinfoRead(void) { + char *path, *cur, *eol, *base; + int pid, outfd = -1, errfd = -1; + virSysinfoDefPtr ret = NULL; + const char **argv; + int n, res, waitret, exitstatus; + char *outbuf = NULL; + char *errbuf = NULL; + + path = virFindFileInPath(SYSINFO_SMBIOS_DECODER); + if (path == NULL) { + virSmbiosReportError(VIR_ERR_INTERNAL_ERROR, + _("Failed to find path for %s binary"), + SYSINFO_SMBIOS_DECODER); + return(NULL); + } + + n = 1 + /* dmidecode */ + 1 + /* -q */ + 2; /* -t 0,1 */ + + if (VIR_ALLOC_N(argv, n + 1) < 0) + return(NULL); + + n = 0; + argv[n++] = path; + argv[n++] = "-q"; + argv[n++] = "-t"; + argv[n++] = "0,1"; + argv[n] = NULL;
Since there's no conditionally included args here, it is simpler to avoid the counting of args & alloc & just pre-declare argv const char *argv[] = { path, "-q", "-t", "0,1", NULL }; Regards, Daniel -- |: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :| |: http://libvirt.org -o- http://virt-manager.org -o- http://deltacloud.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|