Commit Graph

29 Commits

Author SHA1 Message Date
Elliott Hughes a744b05984 Add missing <malloc.h> and <string.h> includes.
Change-Id: Ia41756e607663d056e7d2fdd7ecbec7e5841a913
2015-01-28 11:37:57 -08:00
Elliott Hughes f6b62d0a7d Fix formatting in 4df4dfedf6.
Change-Id: I1ad219285cb1f4a39cfe2bdef224b78eff843317
2014-11-10 15:50:30 -08:00
Bo Huang 4df4dfedf6 When new error happend,then errno should be updated accordingly.
Otherwise, need to keep previous errno.

Reproduced steps:
pre-condition:
DUT support external SDcard or Usb mass storage;

1. Insert blank(no partition) SDcard or UMS to DUT;

Expected result:
Should prompt user with storage error.

Test result:
There is no notification for error.

Error log:
01-01 01:06:49.239 I/fsck_msdos( 200): fsck_msdos terminated by exit(8)
01-01 01:06:49.239 E/Vold ( 200): /dev/block/vold/179:16 failed FS checks (I/O error)
01-01 01:06:49.239 D/Vold ( 200): Volume sdcard1 state changing 3 (Checking) -> 1 (Idle-Unmounted)
01-01 01:06:49.239 W/Vold ( 200): Returning OperationFailed - no handler for errno 0)

Root cause analysis:
1.Volume::setState will call senBroadcase to send out state notification;
2.Finally, SocketClient::sendDataLockedv was called to sent message.
In sendDataLockedv funtion,  when current == iovcnt,  e is 0 by default.
So Vold get incorrect errno.

Change-Id: Icb32a4193f02f22b5e3feaba177bc278f8f1f41b
Signed-off-by: Bo Huang <bo.b.huang@intel.com>
2014-11-10 15:45:16 -08:00
Mark Salyzyn 4389588e8d libsysutil: frequent native crash /system/bin/vold
regression from commit a6e965578e44f9ae5f98de822ba5decec381dffc

* wrap writev with sigaction SIG_IGN SIGPIPE to emulate the
  send(,,,MSG_NOSIGNAL) call it had replaced.

(cherry pick from commit 83fc720785)

BUG: 12796279
Change-Id: I14363630ada79c0a5b85bb6b2afd0a1c4d5c3109
2014-01-31 15:27:14 -08:00
Mark Salyzyn 23f04107dc libsysutils: Add iovec/runOnEachSocket
SocketClient:
* Replace sendDataLocked with sendDataLockedv which takes an iovec.
* Add a version of sendData, sendDatav, which takes an iovec.
* do not preserve iovec content through sendDatav

SocketListener:
* Add runOnEachSocket, which allows to to specify a SocketClientCommand to
  run individually on each socket. This allows you to do broadcast-like
  actions customized for each individual socket.
* Client safe list reference counting for sendBroadcast & runOnEach Socket

(cherry picked from commit a6e965578e)

Signed-off-by: Nick Kralevich <nnk@google.com>
Signed-off-by: Mark Salyzyn <salyzyn@google.com>

Change-Id: I716f89c01b4cb7af900045c7e41fac1492defb06
2014-01-27 15:22:04 -08:00
Hong-Mei Li 544a7f7a36 libsysutils: fix null pointer and memory leak issue
In SocketClient::quoteArg function
1. Fix potential null pointer accessing issue
2. Fix potential memory leak introduced by realloc fail

Change-Id: I1ca0f9089290d43452e9a71428244545f4ed866b
Signed-off-by: Hong-Mei Li <a21834@motorola.com>
2013-05-20 17:30:11 +08:00
Robert Greenwalt 6f523cda13 am 7bb1b958: am ff856a2b: Merge "Add error handling to SocketClient::sendData"
* commit '7bb1b9585d2d61beaf05c997971aee27f87ad3f7':
  Add error handling to SocketClient::sendData
2012-05-30 15:29:07 -07:00
Mattias Falk 2e5fcd08ac Add error handling to SocketClient::sendData
Return failure and set errno if mSocket isn't valid.

Change-Id: I579114d435db46d0bb5682167ef34bebe061a8f8
2012-05-29 14:19:06 +02:00
Robert Greenwalt 594947793c Add ability to quote responses as needed.
It's up to the protocol to know when quotes are required.  In the future
the response should probably all be binary blobs with lengths.

bug:6353048
Change-Id: I3f9b48ab0f4e6746d75cdc9c0c84d33f38f63661
2012-04-20 17:41:42 -07:00
Selim Gurun 6ac770fc52 Do not generate SIGPIPE errors in SocketCLient.
This change is to make sure the users of library does not crash
if they are not handling SIGPIPE properly.

Change-Id: I4ea80d6bfc26a4bca6b901959ae3060b059d46d3
2012-03-12 10:20:42 -07:00
Robert Greenwalt 7599bfcf13 Fix pointer arith.
Sending 3digit code, null, binary-length and data.  Current code sends
3digit code, space, null, binary-length, binary-data.

The space should not be sent.

Change-Id: I1df00a3e70805b39b6105966c7f3c613461a6858
2012-03-09 11:55:51 -08:00
Selim Gurun 7bf4c45f84 Add a utility function to send a code + binary msg
Add a utility function to SocketClient to send a c-string code
prepended to a binary message. This is necessary to be able to
send a binary message while keeping compatible with underlying
text-based protocol.

Change-Id: Ifc6562003a687577d7deb50260533a5147ae4f97
2012-03-07 16:19:52 -08:00
Robert Greenwalt 8702bb17f4 New NativeDaemonConnector protocol adds a seqnum.
Allows for one socket to be multiplexed for multiple requests.
Doesn't use command sequence numbers for broadcasts - would make no sense.
Doesn't alter current default behavior so OEM's using these classes
won't notice a difference.
bug:5864209

Change-Id: Ie3b19c4f81eea868569229a365c8cb7de249c2dd
2012-03-05 11:44:43 -08:00
Guang Zhu a8185a622e Revert "New NativeDaemonConnector protocol adds a seqnum."
Reverting because it seems to break `adb reboot`

This reverts commit dc58e73071.

Change-Id: Ib8cc4379254694398cbb7f3e7a64c20e1ed8c1ba
2012-02-07 19:26:54 -08:00
Robert Greenwalt dc58e73071 New NativeDaemonConnector protocol adds a seqnum.
Allows for one socket to be multiplexed for multiple requests.
bug:5864209

Change-Id: I934c88da25d95e093371f455442bdf2f0ed7a4f4
2012-02-07 16:00:07 -08:00
Xianzhu Wang 4520246d35 Fix SocketListener socket leak issue.
The problem was: if a socket is shared between SocketListener and another
thread, only if the last reference is removed by SocketListener can the socket
be closed, otherwise the socket will leak. This sometimes happens in netd's
dnsproxyd.

This change let the SocketClient own the socket and close the socket when
the SocketClient is destructed.

Change-Id: I2865fbfe9ee4d8b3e43d7e02919dbb2d261f70de
2011-09-29 13:42:32 +08:00
Brad Fitzpatrick 4be4e69f01 Fix potential race introduced in Icd7f5f03
Digit wrote:

"You probably don't want to close the socket here without updating
c->socket as well. Otherwise, another thread holding a handle to the
client after the c->decRef() could end up sending a message to a
different socket, if the file descriptor index is reused by another
client in the meantime."

Change-Id: Icdefb5ffc0c7607325d7db761e1f04e5d868bfb7
2011-03-17 17:14:46 -07:00
Brad Fitzpatrick 648ebad883 SocketClient: add optional reference counting
Needed to fix a race in netd.

Bug: 3438459
Change-Id: Icd7f5f035510235f733a25c0621479d3e644b152
2011-03-17 15:50:02 -07:00
David 'Digit' Turner af61509b50 libsysutils: Handle EINTR in SocketClient::sendData()
+ Improve allocation code in sendMsg(code,msg,addErrno)

Change-Id: Ib5fe84bec1a167c369e7ba759acea395e832f6b5
2011-01-19 02:18:40 +01:00
Brad Fitzpatrick 16ae478af4 Permit 0 length writes.
Change-Id: I087d0074c8d9e13ce814187475966da94f693fc0
2010-11-02 10:56:15 -07:00
Brad Fitzpatrick 8c5669f9f9 Let SocketClient users write binary data to clients.
This is a dependency for the DNS proxy CLs.

This CL also adds a new socket for the netd process to inherit which
is owned by the inet group.  (so only apps with the INTERNET
permission can use the DNS proxy...)

Change-Id: Ic3475c697913ba85805b4e49801b65e7a1d59289
2010-10-27 10:27:34 -07:00
Kenny Root 30abb7234d Fetch peer credentials for local sockets
Fetch the PID, UID, and GID of the remote side of a local socket
connection in case any users of this library class want to check it.

Change-Id: Ia3230e6bc68ab6f93160df9f5996d2bf744b872c
2010-09-14 14:35:10 -07:00
San Mehat 7e8529a8b5 system/core: Switch libsysutils & sched_policy LOG -> SLOG
Change-Id: Id74c6895a8012c5915f2e259339101844de7c085
Signed-off-by: San Mehat <san@google.com>
2010-03-25 09:31:42 -07:00
San Mehat c73a3a5771 libsysutils: Move to a null terminated string protocol using space as a field separator.
Also removes some debugging

Signed-off-by: San Mehat <san@google.com>
2009-06-15 14:06:03 -07:00
San Mehat 03f0d27f6c libsysutils: Fix command argument passing bug + whitespace cleanup
Signed-off-by: San Mehat <san@google.com>
2009-05-29 15:25:45 -07:00
San Mehat db01754579 libsysutils: const correctness fixes + remove some debugging
Signed-off-by: San Mehat <san@google.com>
2009-05-20 17:16:05 -07:00
San Mehat df6c1b91e3 libsysutils: General clean up + disable build in simulator builds
Signed-off-by: San Mehat <san@google.com>
2009-05-13 09:10:01 -07:00
San Mehat d768066ef5 libsysutils: Tweak SocketListener and friends
Signed-off-by: San Mehat <san@google.com>
2009-05-12 14:02:32 -07:00
San Mehat fa644ffe94 libsysutils: Add multiple client support and fix some bugs 2009-05-10 09:26:42 -07:00