diff options
author | Igor Sysoev <igor@sysoev.ru> | 2009-09-16 13:28:20 +0000 |
---|---|---|
committer | Igor Sysoev <igor@sysoev.ru> | 2009-09-16 13:28:20 +0000 |
commit | 7e4e5e165f81697faddce56bdf1ebaf586b72c16 (patch) | |
tree | a351203cfe43010adee58b8af5276707615da979 /src | |
parent | d1e95674256636c6810012aa1772eb1440579dd5 (diff) | |
download | nginx-7e4e5e165f81697faddce56bdf1ebaf586b72c16.tar.gz nginx-7e4e5e165f81697faddce56bdf1ebaf586b72c16.zip |
preserve errno while ngx_free()
Diffstat (limited to 'src')
-rw-r--r-- | src/os/win32/ngx_files.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/os/win32/ngx_files.c b/src/os/win32/ngx_files.c index c74ec5886..d86b22be0 100644 --- a/src/os/win32/ngx_files.c +++ b/src/os/win32/ngx_files.c @@ -18,9 +18,10 @@ static u_short *ngx_utf8_to_utf16(u_short *utf16, u_char *utf8, size_t len); ngx_fd_t ngx_open_file(u_char *name, u_long mode, u_long create, u_long access) { - u_short *u; - ngx_fd_t fd; - u_short utf16[NGX_UTF16_BUFLEN]; + u_short *u; + ngx_fd_t fd; + ngx_err_t err; + u_short utf16[NGX_UTF16_BUFLEN]; u = ngx_utf8_to_utf16(utf16, name, NGX_UTF16_BUFLEN); @@ -33,7 +34,9 @@ ngx_open_file(u_char *name, u_long mode, u_long create, u_long access) NULL, create, FILE_FLAG_BACKUP_SEMANTICS, NULL); if (u != utf16) { + err = ngx_errno; ngx_free(u); + ngx_set_errno(err); } return fd; |