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 :|