Upload Module Compilation on 64-Bit Architecture

Valery Kholodkov valery+nginxru at grid.net.ru
Thu Oct 30 12:39:33 MSK 2008

Yeah, I know about this problem. I'll fix it in next version. The better
solution from my point of view sounds:

-            if(u->output_file.offset + len > ulcf->max_file_size)
+            if(u->output_file.offset + (off_t)len > ulcf->max_file_size)

Patch is attached.

> I was unable to compile the latest version (2.0.7) of the Nginx upload
> module on a 64-bit system. I tried with both Nginx 0.6.32 and 0.7.19.
> I received a warning about a comparison of a signed and unsigned int and
> Nginx will abort compilation if a warning is encountered.
> I was able to successfully compile Nginx with the upload module by
> changing
> line 981 in ngx_http_upload_module.c from:
>     if(u->output_file.offset + len > ulcf->max_file_size)
> to:
>     if((unsigned int)(u->output_file.offset + len) > ulcf->max_file_size)
> My C is pretty rusty and I'm hardly acquainted with the Nginx and upload
> module source.
> So my questions is: was this the right thing to do?

Best regards,
Valery Kholodkov
-------------- next part --------------
A non-text attachment was scrubbed...
Name: off_t.patch
Type: text/x-diff
Size: 499 bytes
Desc: not available
URL: <http://nginx.org/pipermail/nginx/attachments/20081030/bcb484be/attachment.patch>

More information about the nginx mailing list