Opened 12 years ago

Closed 12 years ago

#4573 closed Bugs (fixed)

boost/asio/detail/impl/socket_ops.ipp:315: int 'result' shadows previous 'result', declared at line 278

Reported by: anonymous Owned by: chris_kohlhoff
Milestone: To Be Determined Component: asio
Version: Boost 1.44.0 Severity: Problem
Keywords: Cc:

Description

As of r64932 file boost/asio/detail/impl/socket_ops.ipp at function close, there is a declaration of 'int result' on line 315 that shadows a previous declaration of 'int result' on line 278. This causes warning C6246 from the Microsoft code analysis tool PREfast, because shadowing can often cause bugs or reduce maintainability. From inspection of the code, this particular construct guarantees that boost::asio::detail::socket_ops::close always returns 0, since the result initialized with a real value goes out of scope and the return statement then reads the result that was default-initialized to 0.

Some call sites test the value of close, but most do not. In reactive_socket_service_base.ipp:67, the return value of close is used to decide whether to reconstruct the impl.

Change History (2)

comment:1 by chris_kohlhoff, 12 years ago

(In [66008]) Ensure close()/closesocket() failures are correctly propagated. Refs #4573.

comment:2 by chris_kohlhoff, 12 years ago

Resolution: fixed
Status: newclosed

(In [66037]) Merge from trunk.

........

r65998 | chris_kohlhoff | 2010-10-16 15:30:12 +1100 (Sat, 16 Oct 2010) | 2 lines

Make unit tests build faster.

........

r66002 | chris_kohlhoff | 2010-10-16 16:13:46 +1100 (Sat, 16 Oct 2010) | 2 lines

Add a test case for bug where a deadline timer never fires if the io_service is run in a background thread. N.B. fails only on platforms that use kqueue. Fixes #4568.

........

r66004 | chris_kohlhoff | 2010-10-16 16:43:03 +1100 (Sat, 16 Oct 2010) | 2 lines

Fix the way the kqueue_reactor is interrupted when a new timer is scheduled. Fixes #4568.

........

r66005 | chris_kohlhoff | 2010-10-16 17:27:45 +1100 (Sat, 16 Oct 2010) | 2 lines

Fix a const-correctness issue that prevents valid uses of has_service<> from compiling. Fixes #4638.

........

r66006 | chris_kohlhoff | 2010-10-16 18:06:18 +1100 (Sat, 16 Oct 2010) | 2 lines

Use lower-case to keep MinGW cross-compilers happy. Fixes #4491.

........

r66007 | chris_kohlhoff | 2010-10-16 18:24:47 +1100 (Sat, 16 Oct 2010) | 2 lines

Don't use deprecated system functions. Fixes #4672.

........

r66008 | chris_kohlhoff | 2010-10-16 20:47:11 +1100 (Sat, 16 Oct 2010) | 2 lines

Ensure close()/closesocket() failures are correctly propagated. Fixes #4573.

........

r66009 | chris_kohlhoff | 2010-10-16 21:01:14 +1100 (Sat, 16 Oct 2010) | 2 lines

Check return code of InitializeCriticalSectionAndSpinCount. Fixes #4574.

........

r66010 | chris_kohlhoff | 2010-10-16 22:04:08 +1100 (Sat, 16 Oct 2010) | 2 lines

Add support for hardware flow control on QNX. Fixes #4625.

........

r66014 | chris_kohlhoff | 2010-10-16 22:39:13 +1100 (Sat, 16 Oct 2010) | 2 lines

Always use pselect() on HP-UX, if it is available. Fixes #4578.

........

r66017 | chris_kohlhoff | 2010-10-16 23:23:56 +1100 (Sat, 16 Oct 2010) | 2 lines

Ensure handler arguments are passed as lvalues. Fixes #4744.

........

r66018 | chris_kohlhoff | 2010-10-16 23:39:06 +1100 (Sat, 16 Oct 2010) | 2 lines

Fix Windows build when thread support is disabled. Fixes #4680.

........

r66020 | chris_kohlhoff | 2010-10-16 23:59:29 +1100 (Sat, 16 Oct 2010) | 3 lines

Timers with expiry times set more than 5 minutes in the future need the waitable timer to be periodic. Fixes #4745.

........

r66035 | chris_kohlhoff | 2010-10-17 22:33:28 +1100 (Sun, 17 Oct 2010) | 2 lines

Version bump.

........

Note: See TracTickets for help on using tickets.