Ticket #1787: opkg_cmd.c.diff

File opkg_cmd.c.diff, 978 bytes (added by chgros, 11 years ago)
  • opkg_cmd.c

     
    312312static opkg_intercept_t opkg_prep_intercepts(opkg_conf_t *conf) 
    313313{ 
    314314    opkg_intercept_t ctx; 
     315    char *oldpath; 
    315316    char *newpath; 
    316317    int gen; 
    317318 
    318319    ctx = malloc (sizeof (*ctx)); 
    319     ctx->oldpath = strdup (getenv ("PATH")); 
     320    oldpath = getenv ("PATH"); 
     321    if (oldpath) { 
     322        ctx->oldpath = strdup (oldpath); 
     323    } else { 
     324        ctx->oldpath = 0; 
     325    } 
    320326 
    321327    sprintf_alloc (&newpath, "%s/opkg/intercept:%s", DATADIR, ctx->oldpath); 
    322328    setenv ("PATH", newpath, 1); 
     
    344350    DIR *dir; 
    345351    int err = 0; 
    346352 
    347     setenv ("PATH", ctx->oldpath, 1); 
    348     free (ctx->oldpath); 
     353    if (ctx->oldpath) { 
     354        setenv ("PATH", ctx->oldpath, 1); 
     355        free (ctx->oldpath); 
     356    } else { 
     357        unsetenv("PATH"); 
     358    } 
    349359 
    350360    dir = opendir (ctx->statedir); 
    351361    if (dir) {