]> rtime.felk.cvut.cz Git - frescor/frsh.git/commitdiff
Fixed segfault in FCB
authorMichal Sojka <sojkam1@fel.cvut.cz>
Thu, 29 Jan 2009 09:52:07 +0000 (10:52 +0100)
committerMichal Sojka <sojkam1@fel.cvut.cz>
Thu, 29 Jan 2009 09:52:07 +0000 (10:52 +0100)
This segfault appeared sometimes when compiled with -O1 and higher.
Reason: uninitialized local variable.

fres/cbroker/fcb.c

index bb6d25309137a4e8222b8d8cc6ade5949f388937..87e4d9072fddb952619f247bf9a63d92fd4b1437 100644 (file)
@@ -278,6 +278,10 @@ negotiate_contract(fres_contract_broker obj,
        }
 
        fcb_contract = fcb_contract_new(id);
+       if (!fcb_contract) {
+               ret = -1;
+               goto err;
+       }
        fcb_contract->user_contract = fres_contract_duplicate(contract);
 
        /* Reserve contract */
@@ -520,6 +524,7 @@ int main(int argc, char *argv[])
 #endif
 
        fcb_resource_init_root_field(&fcb_data);
+       fcb_contract_init_root_field(&fcb_data);
 
        fcb = forb_fres_contract_broker_new(orb, &impl, &fcb_data);
        if (!fcb) error(1, errno, "forb_fres_contract_broker_new failed");