
Hi Karel, On Mon, 2007-01-29 at 09:27 +0100, Karel Zak wrote:
pedant's quick glance: ;-)
On Thu, Jan 25, 2007 at 03:52:03PM +0000, Mark McLoughlin wrote:
@@ -761,6 +813,61 @@ static int qemudParseXML(struct qemud_se }
+static char * +qemudNetworkIfaceConnect(struct qemud_server *server, + struct qemud_vm *vm, + struct qemud_vm_net_def *net) +{
.....
+ + snprintf(tapfdstr, sizeof(tapfdstr), "tap,fd=%d,script=", tapfd); + + return strdup(tapfdstr); ^^^^^^^^^^^^^^^^^^^ where is allocation check?
if ((p = strdup(tapfdstr))) return p;
Very well spotted ... I've also moved the strdup() to before the tapfds realloc() so as to not leave that in a weird state if the strdup() fails.
+ if (net->type == QEMUD_NET_NETWORK) { + if (qemudBufferPrintf(&buf, " <network name='%s", net->dst.network.name) < 0) + goto no_memory; + + if (net->dst.network.tapifname[0] != '\0' && + qemudBufferPrintf(&buf, " tapifname='%s'", net->dst.network.tapifname) < 0) + goto no_memory; + + if (qemudBufferPrintf(&buf, "/>\n") < 0) + goto no_memory; + } + if (qemudBufferPrintf(&buf, " </interface>\n") < 0) ^^^^^^
There is also BufferAdd() which is cheaper than Printf if you needn't any string formatting.
That's one for Dan ... notice the way it's not actually in my patch. I did actually think the same thing myself at the time ... :-) Thanks, Mark.