Hi Steve,

Steve Langasek wrote:

> --- a/src/help.c
> +++ b/src/help.c
> @@ -186,6 +186,11 @@ preexecscript(struct command *cmd)
>    size_t instdirl;
>  
>    if (*instdir) {
> +    if (strstr(admindir, instdir) == admindir)
> +      /* Already forked, safe to modify the environment; strip off the chroot
> +         path from our admin dir so this works under the chroot */
> +      if (setenv("DPKG_ADMINDIR", admindir+strlen(instdir), 1) < 0)
> +        ohshite(_("unable to setenv for subprocesses"));

strstr can be slow. :)  Why not:

        size_t instdirlen = strlen(instdir);
        if (strncmp(admindir, instdir, instdirlen) == 0) {
          /* ... explanatory comment ... */
          if (setenv("DPKG_ADMINDIR", admindir + instdirlen, 1) < 0)
            ohshite(_(...));
        }

Thanks,
Jonathan


-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]
Archive: http://lists.debian.org/20110301231044.GA9490@elie

Reply via email to