diff options
author | Luiz Augusto Von Dentz <luiz.dentz-von@nokia.com> | 2010-03-22 15:11:07 +0200 |
---|---|---|
committer | Luiz Augusto Von Dentz <luiz.dentz-von@nokia.com> | 2010-03-24 23:16:45 +0200 |
commit | dd7494fa11f897fa9a4356425b5f1652c57345f3 (patch) | |
tree | 3baa3d2f92b4f47fba6b1c48401cd921b21219f1 /src/sdpd-request.c | |
parent | ec98e03076f6b4508e945b6a4afb943c0e1f4800 (diff) | |
download | bluez-dd7494fa11f897fa9a4356425b5f1652c57345f3.tar.gz |
Check the return of getsockopt and getsockname logging the errors
Diffstat (limited to 'src/sdpd-request.c')
-rw-r--r-- | src/sdpd-request.c | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/src/sdpd-request.c b/src/sdpd-request.c index c878c07d4..88d0afabc 100644 --- a/src/sdpd-request.c +++ b/src/sdpd-request.c @@ -1040,20 +1040,33 @@ void handle_request(int sk, uint8_t *data, int len) sdp_req_t req; size = sizeof(sa); - if (getpeername(sk, (struct sockaddr *) &sa, &size) < 0) + if (getpeername(sk, (struct sockaddr *) &sa, &size) < 0) { + error("getpeername: %s", strerror(errno)); return; + } - if (sa.l2_family == AF_BLUETOOTH) { + if (sa.l2_family == AF_BLUETOOTH) { struct l2cap_options lo; + memset(&lo, 0, sizeof(lo)); size = sizeof(lo); - getsockopt(sk, SOL_L2CAP, L2CAP_OPTIONS, &lo, &size); + + if (getsockopt(sk, SOL_L2CAP, L2CAP_OPTIONS, &lo, &size) < 0) { + error("getsockopt: %s", strerror(errno)); + return; + } + bacpy(&req.bdaddr, &sa.l2_bdaddr); req.mtu = lo.omtu; req.local = 0; memset(&sa, 0, sizeof(sa)); size = sizeof(sa); - getsockname(sk, (struct sockaddr *) &sa, &size); + + if (getsockname(sk, (struct sockaddr *) &sa, &size) < 0) { + error("getsockname: %s", strerror(errno)); + return; + } + bacpy(&req.device, &sa.l2_bdaddr); } else { bacpy(&req.device, BDADDR_ANY); |