On Fri, Jul 26, 2024 at 10:28:05AM +0200, Claudio Jeker wrote:
> Here is a fix for radare2 and rizin to compile on -current.
> 
> The code in both project was just horribly wrong and me removing
> PS_STOPPED made this horror pop up.
> 
> This has only been compile tested but it can't be worse than before.

Thanks Claudio.
I'd say go ahead, as you mentionned, it can't be worse :-)


> -- 
> :wq Claudio
> 
> Index: radare2/main/Makefile
> ===================================================================
> RCS file: /cvs/ports/devel/radare2/main/Makefile,v
> diff -u -p -r1.31 Makefile
> --- radare2/main/Makefile     15 Nov 2023 17:13:46 -0000      1.31
> +++ radare2/main/Makefile     26 Jul 2024 08:25:05 -0000
> @@ -3,7 +3,7 @@
>  COMMENT =            libre and portable reverse engineering framework
>  
>  V =                  5.8.8
> -REVISION =           0
> +REVISION =           1
>  SUBST_VARS +=                V
>  
>  GH_PROJECT =         radare2
> Index: radare2/main/patches/patch-libr_debug_p_native_bsd_bsd_debug_c
> ===================================================================
> RCS file: radare2/main/patches/patch-libr_debug_p_native_bsd_bsd_debug_c
> diff -N radare2/main/patches/patch-libr_debug_p_native_bsd_bsd_debug_c
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ radare2/main/patches/patch-libr_debug_p_native_bsd_bsd_debug_c    26 Jul 
> 2024 08:25:05 -0000
> @@ -0,0 +1,32 @@
> +Index: libr/debug/p/native/bsd/bsd_debug.c
> +--- libr/debug/p/native/bsd/bsd_debug.c.orig
> ++++ libr/debug/p/native/bsd/bsd_debug.c
> +@@ -189,18 +189,20 @@ RDebugInfo *bsd_info(RDebug *dbg, const char *arg) {
> +             rdi->gid = kp->p__pgid;
> +             rdi->exe = strdup (kp->p_comm);
> + 
> +-            rdi->status = R_DBG_PROC_STOP;
> +-
> +-            if (kp->p_psflags & PS_ZOMBIE) {
> +-                            rdi->status = R_DBG_PROC_ZOMBIE;
> +-            } else if (kp->p_psflags & PS_STOPPED) {
> ++            switch (kp->p_stat) {
> ++                    case SDEAD:
> ++                            rdi->status = R_DBG_PROC_DEAD;
> ++                            break;
> ++                    case SSTOP:
> +                             rdi->status = R_DBG_PROC_STOP;
> +-            } else if (kp->p_psflags & PS_PPWAIT) {
> ++                            break;
> ++                    case SSLEEP:
> +                             rdi->status = R_DBG_PROC_SLEEP;
> +-            } else if ((kp->p_psflags & PS_EXEC) || (kp->p_psflags & 
> PS_INEXEC)) {
> ++                            break;
> ++                    default:
> +                             rdi->status = R_DBG_PROC_RUN;
> ++                            break;
> +             }
> +-
> +     }
> + 
> +     kvm_close (kd);
> Index: rizin/Makefile
> ===================================================================
> RCS file: /cvs/ports/devel/rizin/Makefile,v
> diff -u -p -r1.9 Makefile
> --- rizin/Makefile    6 May 2024 12:23:32 -0000       1.9
> +++ rizin/Makefile    26 Jul 2024 08:25:05 -0000
> @@ -8,7 +8,7 @@ V =           0.7.2
>  DISTNAME =   rizin-src-v${V}
>  EXTRACT_SUFX =       .tar.xz
>  PKGNAME =    rizin-${V}
> -REVISION =   0
> +REVISION =   1
>  
>  SITES =              
> https://github.com/rizinorg/rizin/releases/download/v${V}/
>  
> Index: rizin/patches/patch-librz_debug_p_native_bsd_bsd_debug_c
> ===================================================================
> RCS file: rizin/patches/patch-librz_debug_p_native_bsd_bsd_debug_c
> diff -N rizin/patches/patch-librz_debug_p_native_bsd_bsd_debug_c
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ rizin/patches/patch-librz_debug_p_native_bsd_bsd_debug_c  26 Jul 2024 
> 08:25:05 -0000
> @@ -0,0 +1,30 @@
> +Index: librz/debug/p/native/bsd/bsd_debug.c
> +--- librz/debug/p/native/bsd/bsd_debug.c.orig
> ++++ librz/debug/p/native/bsd/bsd_debug.c
> +@@ -211,16 +211,19 @@ RzDebugInfo *bsd_info(RzDebug *dbg, const char *arg) {
> +             rdi->gid = kp->p__pgid;
> +             rdi->exe = strdup(kp->p_comm);
> + 
> +-            rdi->status = RZ_DBG_PROC_STOP;
> +-
> +-            if (kp->p_psflags & PS_ZOMBIE) {
> +-                    rdi->status = RZ_DBG_PROC_ZOMBIE;
> +-            } else if (kp->p_psflags & PS_STOPPED) {
> ++            switch (kp->p_stat) {
> ++            case SDEAD:
> ++                    rdi->status = RZ_DBG_PROC_DEAD;
> ++                    break;
> ++            case SSTOP:
> +                     rdi->status = RZ_DBG_PROC_STOP;
> +-            } else if (kp->p_psflags & PS_PPWAIT) {
> ++                    break;
> ++            case SSLEEP:
> +                     rdi->status = RZ_DBG_PROC_SLEEP;
> +-            } else if ((kp->p_psflags & PS_EXEC) || (kp->p_psflags & 
> PS_INEXEC)) {
> ++                    break;
> ++            default:
> +                     rdi->status = RZ_DBG_PROC_RUN;
> ++                    break;
> +             }
> +     }
> + 
> 

-- 
Antoine

Reply via email to