From ac4bd5b46b2b6c5821710cb92a0ef2f5abe4c484 Mon Sep 17 00:00:00 2001 From: neil Date: Mon, 5 Nov 2012 08:15:00 +0000 Subject: [PATCH] Don't dereference null pointer if gadgets can't be allocated. git-svn-id: https://svn.aros.org/svn/aros/trunk/AROS@46003 fb15a70f-31f2-0310-bbcc-cdcc74a49acc --- rom/usb/poseidon/popo.gui.c | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/rom/usb/poseidon/popo.gui.c b/rom/usb/poseidon/popo.gui.c index 2033f50d10..75d987f3aa 100644 --- a/rom/usb/poseidon/popo.gui.c +++ b/rom/usb/poseidon/popo.gui.c @@ -304,7 +304,7 @@ AROS_UFH0(void, pPoPoGUITask) if(po->po_GadgetList.lh_Head->ln_Succ) { - if(po->po_OpenRequest) + if(po->po_OpenRequest) { if(!isopen) { @@ -691,14 +691,18 @@ struct PsdPoPoGadgets * pGenerateAddBox(LIBBASETYPEPTR ps, struct PsdDevice *pd, } } } - for(cnt = 0; cnt < 4; cnt++) + if(pog) { - DoMethod(pog->pog_GadgetObj[cnt], MUIM_KillNotify, MUIA_Pressed); - if(gad[cnt]) - { - DoMethod(pog->pog_GadgetObj[cnt], MUIM_Notify, MUIA_Pressed, FALSE, - po->po_AppObj, 5, MUIM_Application_PushMethod, po->po_PoPoObj, 2, methods[cnt], pog); - } + for(cnt = 0; cnt < 4; cnt++) + { + DoMethod(pog->pog_GadgetObj[cnt], MUIM_KillNotify, MUIA_Pressed); + if(gad[cnt]) + { + DoMethod(pog->pog_GadgetObj[cnt], MUIM_Notify, MUIA_Pressed, + FALSE, po->po_AppObj, 5, MUIM_Application_PushMethod, + po->po_PoPoObj, 2, methods[cnt], pog); + } + } } psdFreeVec(bindingsstr); @@ -706,6 +710,10 @@ struct PsdPoPoGadgets * pGenerateAddBox(LIBBASETYPEPTR ps, struct PsdDevice *pd, psdFreeVec(bodyinfo); psdFreeVec(wholebodyinfo); + /* Everything after this depends on having gadgets */ + if(!pog) + return NULL; + /* update delay */ if(updatetime && pog) { -- 2.11.4.GIT