tbetter handling of failed setproc - plan9port - [fork] Plan 9 from user space
 (HTM) git clone git://src.adamsgaard.dk/plan9port
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 783aadbdcd39e3850c61528c77fcf878448824f4
 (DIR) parent 4999080d5b0c41a3aab78414a0329154441d1dce
 (HTM) Author: rsc <devnull@localhost>
       Date:   Fri, 11 Feb 2005 19:44:37 +0000
       
       better handling of failed setproc
       
       Diffstat:
         M src/cmd/acid/proc.c                 |      11 +++++++----
       
       1 file changed, 7 insertions(+), 4 deletions(-)
       ---
 (DIR) diff --git a/src/cmd/acid/proc.c b/src/cmd/acid/proc.c
       t@@ -14,6 +14,7 @@ sproc(int xpid)
        {
                Lsym *s;
                int i;
       +        Regs *regs;
        
                if(symmap == 0)
                        error("no map");
       t@@ -22,11 +23,11 @@ sproc(int xpid)
                        return;
        
                if(corhdr){
       -                free(correg);
       -                correg = nil;
       -                correg = coreregs(corhdr, xpid);
       -                if(correg == nil)
       +                regs = coreregs(corhdr, xpid);
       +                if(regs == nil)
                                error("no such pid in core dump");
       +                free(correg);
       +                correg = regs;
                }else{
                        /* XXX should only change register set here if cormap already mapped */                
                        if(xpid <= 0)
       t@@ -35,6 +36,8 @@ sproc(int xpid)
                        unmapfile(corhdr, cormap);
                        free(correg);
                        correg = nil;
       +                pid = -1;
       +                corpid = -1;
        
                        if(mapproc(xpid, cormap, &correg) < 0)
                                error("setproc %d: %r", xpid);