Use after free? in fe-connect.c:closePGconn - Mailing list pgsql-bugs
From | Ranier VF |
---|---|
Subject | Use after free? in fe-connect.c:closePGconn |
Date | |
Msg-id | BLU183-W36C8721B5C151BC8DEFAA7E3550@phx.gbl Whole thread Raw |
Responses |
Re: Use after free? in fe-connect.c:closePGconn
|
List | pgsql-bugs |
Hi=2C Postgresql 9.5.3 32 bits client 32bits libpq.dll with libpq.pdb All calls of PQfinish is protected by: if (conn !=3D NULL) { PQfinish(conn)=3B } In [d:\pginstaller.auto\postgres.windows\src\interfaces\libpq\fe-connect.c= =2C closePGconn(PGconn *conn): Does not check if conn is NULL. Use after free? Best regards=2C Ranier ---------------------------------------------------------------------------= ------------------------------------- Error #1: UNINITIALIZED READ: reading 0x0012fbb4-0x0012fbbb 7 byte(s) withi= n 0x0012fb78-0x0012fbbb # 0 system call NtCreateFile parameter #9 # 1 ntdll.dll!ZwCreateFile +0xb (0x7c90d09= c <ntdll.dll+0xd09c>) # 2 MSWSOCK.dll!? +0x0 (0x71a149c= 0 <MSWSOCK.dll+0x49c0>) # 3 WS2_32.dll!WSASocketW +0x9c (0x71a740e= b <WS2_32.dll+0x40eb>) # 4 ngx_open_listening_sockets [c:\msys\1.0\nginx-= 1.10\src\core\ngx_connection.c:448] # 5 ngx_init_cycle [c:\msys\1.0\nginx-= 1.10\src\core\ngx_cycle.c:609] # 6 main [c:\msys\1.0\nginx-= 1.10\src\core\nginx.c:276] Note: @0:00:03.954 in thread 3124 Error #2: UNADDRESSABLE ACCESS of freed memory: reading 0x020afd3c-0x020afd= 40 4 byte(s) # 0 LIBPQ.dll!closePGconn [d:\pginstaller.auto\postgres.wi= ndows\src\interfaces\libpq\fe-connect.c:2957] # 1 LIBPQ.dll!PQfinish [d:\pginstaller.auto\postgres.wi= ndows\src\interfaces\libpq\fe-connect.c:3055] # 2 dbd_pgsql_close [c:\usr\src\dbd\postgresql\dbd_p= gsql.c:279] # 3 dbd_pgsql_cleanup [c:\usr\src\dbd\postgresql\dbd_p= gsql.c:297] # 4 ngx_destroy_pool [c:\msys\1.0\nginx-1.10\src\core= \ngx_palloc.c:57] # 5 ngx_master_process_exit [c:\msys\1.0\nginx-1.10\src\os\w= in32\ngx_process_cycle.c:562] # 6 ngx_master_process_cycle [c:\msys\1.0\nginx-1.10\src\os\w= in32\ngx_process_cycle.c:235] # 7 main [c:\msys\1.0\nginx-1.10\src\core= \nginx.c:367] Note: @8:39:35.860 in thread 3124 Note: prev lower malloc: 0x020afcf8-0x020afd08 Note: 0x020afd3c-0x020afd40 overlaps memory 0x020afd28-0x020b0d28 that was = freed here: Note: # 0 replace_free [d:\drmemory_package\commo= n\alloc_replace.c:2706] Note: # 1 ngx_hash_init [c:\msys\1.0\nginx-1.10\sr= c\core\ngx_hash.c:426] Note: # 2 ngx_http_merge_types [c:\msys\1.0\nginx-1.10\sr= c\http\ngx_http.c:2089] Note: # 3 ngx_http_gzip_merge_conf [c:\msys\1.0\nginx-1.10\sr= c\http\modules\ngx_http_gzip_filter_module.c:1168] Note: # 4 ngx_http_merge_servers [c:\msys\1.0\nginx-1.10\sr= c\http\ngx_http.c:596] Note: # 5 ngx_http_block [c:\msys\1.0\nginx-1.10\sr= c\http\ngx_http.c:268] Note: instruction: cmp 0x000000b4(%esi) $0xffffffff Error #3: UNADDRESSABLE ACCESS beyond heap bounds: reading 0x020afd10-0x020= afd14 4 byte(s) # 0 LIBPQ.dll!closePGconn [d:\pginstaller.auto\postgres.wi= ndows\src\interfaces\libpq\fe-connect.c:2957] # 1 LIBPQ.dll!PQfinish [d:\pginstaller.auto\postgres.wi= ndows\src\interfaces\libpq\fe-connect.c:3055] # 2 dbd_pgsql_close [c:\usr\src\dbd\postgresql\dbd_p= gsql.c:279] # 3 dbd_pgsql_cleanup [c:\usr\src\dbd\postgresql\dbd_p= gsql.c:297] # 4 ngx_destroy_pool [c:\msys\1.0\nginx-1.10\src\core= \ngx_palloc.c:57] # 5 ngx_master_process_exit [c:\msys\1.0\nginx-1.10\src\os\w= in32\ngx_process_cycle.c:562] # 6 ngx_master_process_cycle [c:\msys\1.0\nginx-1.10\src\os\w= in32\ngx_process_cycle.c:235] # 7 main [c:\msys\1.0\nginx-1.10\src\core= \nginx.c:367] Note: @8:39:35.954 in thread 3124 Note: prev lower malloc: 0x020afcf8-0x020afd08 Note: instruction: cmp 0x00000088(%esi) $0x00000000 Error #4: UNADDRESSABLE ACCESS of freed memory: writing 0x020afd2b-0x020afd= 2c 1 byte(s) # 0 LIBPQ.dll!closePGconn [d:\pginstaller.auto\postgres.wi= ndows\src\interfaces\libpq\fe-connect.c:2974] # 1 LIBPQ.dll!PQfinish [d:\pginstaller.auto\postgres.wi= ndows\src\interfaces\libpq\fe-connect.c:3055] # 2 dbd_pgsql_close [c:\usr\src\dbd\postgresql\dbd_p= gsql.c:279] # 3 dbd_pgsql_cleanup [c:\usr\src\dbd\postgresql\dbd_p= gsql.c:297] # 4 ngx_destroy_pool [c:\msys\1.0\nginx-1.10\src\core= \ngx_palloc.c:57] # 5 ngx_master_process_exit [c:\msys\1.0\nginx-1.10\src\os\w= in32\ngx_process_cycle.c:562] # 6 ngx_master_process_cycle [c:\msys\1.0\nginx-1.10\src\os\w= in32\ngx_process_cycle.c:235] # 7 main [c:\msys\1.0\nginx-1.10\src\core= \nginx.c:367] Note: @8:39:35.969 in thread 3124 Note: prev lower malloc: 0x020afcf8-0x020afd08 Note: 0x020afd2b-0x020afd2c overlaps memory 0x020afd28-0x020b0d28 that was = freed here: Note: # 0 replace_free [d:\drmemory_package\commo= n\alloc_replace.c:2706] Note: # 1 ngx_hash_init [c:\msys\1.0\nginx-1.10\sr= c\core\ngx_hash.c:426] Note: # 2 ngx_http_merge_types [c:\msys\1.0\nginx-1.10\sr= c\http\ngx_http.c:2089] Note: # 3 ngx_http_gzip_merge_conf [c:\msys\1.0\nginx-1.10\sr= c\http\modules\ngx_http_gzip_filter_module.c:1168] Note: # 4 ngx_http_merge_servers [c:\msys\1.0\nginx-1.10\sr= c\http\ngx_http.c:596] Note: # 5 ngx_http_block [c:\msys\1.0\nginx-1.10\sr= c\http\ngx_http.c:268] Note: instruction: mov $0x00 -> 0x000000a3(%esi) ---------------------------------------------------------------------------= -------------------------------------------- =
pgsql-bugs by date: