diff options
| author | 2012-04-12 17:45:22 +0000 | |
|---|---|---|
| committer | 2012-04-12 17:45:22 +0000 | |
| commit | 08fd3d5889e09268918e4db39cdaf7623a7d504c (patch) | |
| tree | 622cf7d82d65018215250d28943f236214fdde7e /usr.sbin/nginx/src/core/ngx_cycle.c | |
| parent | In this case where dup2() extends the table using fdalloc, the newly (diff) | |
| download | wireguard-openbsd-08fd3d5889e09268918e4db39cdaf7623a7d504c.tar.xz wireguard-openbsd-08fd3d5889e09268918e4db39cdaf7623a7d504c.zip | |
use a shared stripping function for chroot and make sure
that the path starts with the chroot prefix before doing anything
with it
Diffstat (limited to 'usr.sbin/nginx/src/core/ngx_cycle.c')
| -rw-r--r-- | usr.sbin/nginx/src/core/ngx_cycle.c | 11 |
1 files changed, 2 insertions, 9 deletions
diff --git a/usr.sbin/nginx/src/core/ngx_cycle.c b/usr.sbin/nginx/src/core/ngx_cycle.c index e8373fe63a4..a706138203e 100644 --- a/usr.sbin/nginx/src/core/ngx_cycle.c +++ b/usr.sbin/nginx/src/core/ngx_cycle.c @@ -1137,15 +1137,8 @@ ngx_reopen_files(ngx_cycle_t *cycle, ngx_uid_t user) len = file[i].pos - file[i].buffer; - if ((ngx_process == NGX_PROCESS_WORKER) && ngx_chrooted && file[i].name.data[0] == '/') { - char *x, *buf = malloc(file[i].name.len); - x = ngx_cpystrn(buf, file[i].name.data + strlen(NGX_PREFIX), - file[i].name.len); - while (buf[0] == '/') { - buf++; - } - file[i].name.len = (x - buf); - file[i].name.data = buf; + if ((ngx_process == NGX_PROCESS_WORKER) && ngx_chrooted) { + ngx_strip_chroot(&file[i].name); } if (file[i].buffer && len != 0) { |
