Commit Graph

97 Commits

Author SHA1 Message Date
Nick Kralevich 4aadb7f6df am b620a0b1: Validate sender credentials on netlink msg receive
* commit 'b620a0b1c7ae486e979826200e8e441605b0a5d6':
  Validate sender credentials on netlink msg receive
2011-04-18 16:29:45 -07:00
Nick Kralevich b620a0b1c7 Validate sender credentials on netlink msg receive
Verify that netlink messages are actually from the kernel,
and not from a userspace program.

Change-Id: I709c0efe9ba0258f6d79ebcde531d7f7bbe780b2
2011-04-18 15:55:59 -07:00
Brad Fitzpatrick 4fecade5f2 am cb1e616e: am 7c556549: Merge changes Icdefb5ff,Icd7f5f03
* commit 'cb1e616e3c108a9c8b159bb95c3356acf5797ba2':
  Fix potential race introduced in Icd7f5f03
  SocketClient: add optional reference counting
2011-03-29 08:45:04 -07:00
Brad Fitzpatrick 3549b0dc28 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-22 14:03:11 -07:00
Brad Fitzpatrick 13aa8ad445 SocketClient: add optional reference counting
Needed to fix a race in netd.

Bug: 3438459
Change-Id: Icd7f5f035510235f733a25c0621479d3e644b152
2011-03-22 14:03:08 -07:00
David 'Digit' Turner 15d09854a8 libsysutils: Fix a file descriptor leak.
The recent refactoring of the select() loop in SocketListener
missed a close() of the file descriptor when the onDataAvailable()
callback returns false.

Change-Id: I767caefab4b98ab350f2db2497ee2bd630f20850
2011-03-22 14:03:04 -07:00
David 'Digit' Turner 100c0e2dab libsysutils: Fix race condition in SocketListener thread.
+ Handle EINTR in accept(), write() and select()
+ Fix a memory leak when deleting the mClients list
+ Fix typo in SocketListener.h

Change-Id: Ie68bb3e2dbefe0dfdaa22a5cd06a42dbc4c0f8aa
2011-03-22 14:02:51 -07:00
David 'Digit' Turner 01feae2d7c libsysutils: Handle EINTR in SocketClient::sendData()
+ Improve allocation code in sendMsg(code,msg,addErrno)

Change-Id: Ib5fe84bec1a167c369e7ba759acea395e832f6b5
2011-03-22 14:02:18 -07:00
Brian Swetland 1aa59a83b5 libsysutils: do not build for TINY_ANDROID
This depends on frameworks/... :-(

Technically it doesn't belong in system/core at all, but of course there are
things in system/core that depend on it, so for now we'll hack around this.

Change-Id: I6aa437f18e1c09bd10fbd3333cf6998a0b6140c6
2011-01-23 19:13:23 -08:00
David 'Digit' Turner b913b5170f libsysutils: Fix a file descriptor leak.
The recent refactoring of the select() loop in SocketListener
missed a close() of the file descriptor when the onDataAvailable()
callback returns false.

Change-Id: I767caefab4b98ab350f2db2497ee2bd630f20850
2011-01-21 19:25:51 +01:00
David 'Digit' Turner af91e4ef09 libsysutils: Handle EINTR in FrameworkClient.cpp
+ get rid of strcpy + strcat calls.

Change-Id: I47778f3d14aa961474648cddf6510b761f124e74
2011-01-19 02:18:40 +01:00
David 'Digit' Turner c6b0def5f0 libsysutils: Fix potential overwrites in FrameworkListener
+ Handle EINTR in read()

Change-Id: If7d486dd4fb5666ce16ef36dca5f417da23e0b73
2011-01-19 02:18:40 +01:00
David 'Digit' Turner cf9e1003ce libsysutils: Fix race condition in SocketListener thread.
+ Handle EINTR in accept(), write() and select()
+ Fix a memory leak when deleting the mClients list
+ Fix typo in SocketListener.h

Change-Id: Ie68bb3e2dbefe0dfdaa22a5cd06a42dbc4c0f8aa
2011-01-19 02:18:40 +01: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
David 'Digit' Turner af174f0039 libsysutils: Fix wait loop in ServiceManager::start and ::stop
Also check the service name length.

Change-Id: Iffb82aa9e71dd96c85c05c4e2016930f4847c1e8
2011-01-19 02:18:40 +01:00
David 'Digit' Turner b59539d395 libsysutils: Handle EINTR in NetlinkListener
Change-Id: Id881a9ca0f0e54f7c78b3609120bedec00d6671c
2011-01-19 02:18:40 +01:00
David 'Digit' Turner 3311eea1d3 libsysutils: Fix NetLinkEvent security issues.
The issues were the following:
- The code in decode() didn't handle the degenerate case where the input buffer is full of '@'
- The code in decode() assumed the input buffer is properly zero-terminated.
- The code in decode() would not check that it doesn't overwrite the mParams[] array.
- The code in findParam() would check mParams[i] before checking the value of 'i'

Also remove un-necessary calls to strlen() at runtime.

Change-Id: I8acead959bd10d97c5380b08958fcb796248a010
2011-01-19 02:18:32 +01:00
Brad Fitzpatrick b9634d05cf Permit 0 length writes.
Change-Id: I087d0074c8d9e13ce814187475966da94f693fc0
2011-01-06 11:16:15 -08:00
Brad Fitzpatrick a2a1f3149f 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: I8a51924e0ed56c6066f77e6f1b02d39bdadac51e
2011-01-06 11:09:55 -08:00
Olivier Bailly b93e5812fa Add missing headers for compilation on x86 targets
Change-Id: I5f4dc797b353a0f01fa00d38375ec303bf863254
2010-11-17 11:47:23 -08: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 1db75e7b9b am 6fd75635: Merge "Fetch peer credentials for local sockets" into gingerbread
Merge commit '6fd75635d820754295557c300ccee89c643864cc' into gingerbread-plus-aosp

* commit '6fd75635d820754295557c300ccee89c643864cc':
  Fetch peer credentials for local sockets
2010-09-14 14:39:18 -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
Brad Fitzpatrick 0e6242f7e2 am 40c2b7cb: Merge "Add missing lock in SocketListener." into gingerbread
Merge commit '40c2b7cbedff612ce8bc7a51589a952cc1d047b6' into gingerbread-plus-aosp

* commit '40c2b7cbedff612ce8bc7a51589a952cc1d047b6':
  Add missing lock in SocketListener.
2010-09-14 10:46:35 -07:00
Brad Fitzpatrick 40c2b7cbed Merge "Add missing lock in SocketListener." into gingerbread 2010-09-14 10:44:15 -07:00
Kenny Root c3fa614928 am f31d2ed1: Return false on socket read error
Merge commit 'f31d2ed1fd3a39a92bccc12eb66728594290ef3b' into gingerbread-plus-aosp

* commit 'f31d2ed1fd3a39a92bccc12eb66728594290ef3b':
  Return false on socket read error
2010-09-14 10:24:26 -07:00
Brad Fitzpatrick 86d01dec4b Add missing lock in SocketListener.
Change-Id: I3d97a06381fce67ef13b1ccdeaa4e8e2830ab2aa
2010-09-14 10:22:14 -07:00
Kenny Root f31d2ed1fd Return false on socket read error
FrameworkListener was returning the errno from a function marked as
returning bool which caused an implicit conversion to true since we were
in an error block where errno was set to something non-zero.

This caused the clients that had errors to stick around forever and not
get removed from the set of file descriptors that SocketListener was
listening to.

Change-Id: Ia27a4cac47459f3a3c2bb6a7f66803a3165c894a
2010-09-14 09:55:22 -07:00
Chih-Wei Huang 80ec37aa15 libsysutils: reimplement NetlinkEvent::findParam in the proper way
The original implementation can not find correct parameters for certain
cases. For example, if you have both foo_bar and foo, try to find foo
may be mismatched. The correct way is to match with "=".

Change-Id: I403b1a7b889583a57a4f3a14e575181ce93b10ff
2010-07-14 14:01:30 +08: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 d674413ff4 sysutils: Add dump() to NetlinkEvent
Signed-off-by: San Mehat <san@google.com>
2009-12-24 07:20:36 -08:00
Jean-Baptiste Queru b029e92428 merge from open-source master 2009-10-14 08:19:24 -07:00
San Mehat ebfe3db361 libsysutils: Fix some bugs in NetlinkListener and NetlinkEvent
Signed-off-by: San Mehat <san@android.com>
2009-10-10 17:39:10 -07:00
San Mehat c4a895b709 nexus: Rollup update for nexus
nexus: Change field separator from : to ' '

Signed-off-by: San Mehat <san@google.com>

nexus: Add some prototypes for stuff to come

Signed-off-by: San Mehat <san@google.com>

nexus: Add some TODOs

Signed-off-by: San Mehat <san@google.com>

libsysutils: Put a proper token parser into the FrameworkListener which
supports minimal \ escapes and quotes

Signed-off-by: San Mehat <san@google.com>

nexus: Fix a lot of bugs

Signed-off-by: San Mehat <san@google.com>

libsysutils: Remove some debugging
Signed-off-by: San Mehat <san@google.com>

nexus: Send broadcasts for supplicant state changes

Signed-off-by: San Mehat <san@google.com>

nexus: Plumb DHCP listener state changes to NetworkManager

Signed-off-by: San Mehat <san@google.com>

nexus: Make the SupplicantState strings more parsable

Signed-off-by: San Mehat <san@google.com>

nexus: Broadcast a message when dhcp state changes.

Signed-off-by: San Mehat <san@google.com>

nexus: Add a few new response codes

Signed-off-by: San Mehat <san@google.com>

nexus: Rename ErrorCode -> ResponseCode

Signed-off-by: San Mehat <san@google.com>

nexus: Add DHCP event broadcasting. Also adds the framework for
tracking supplicant 'searching-for-AP' state

Signed-off-by: San Mehat <san@google.com>

nexus: REmove WifiScanner

Signed-off-by: San Mehat <san@google.com>

nexus: Change the way scanning works. scanmode can now be selected
independantly of triggering a scan. Also adds rxfilter support

Signed-off-by: San Mehat <san@google.com>

nexus: Add support for configuring bluetooth coexistence scanning and modes

Signed-off-by: San Mehat <san@google.com>

nexus: use case insensitive match for property names

Signed-off-by: San Mehat <san@google.com>

nexus: Rollup of a bunch of stuff:
    - 'list' command now takes an argument to match against
    - InterfaceConfig has been moved into the Controller base (for now)
    - DhcpClient now has some rudimentry locking
    - process 'ADDRINFO' messages from dhcpcd
    - Drop tertiary dns

Signed-off-by: San Mehat <san@google.com>

nexus: Clean up some of the supplicant variable parsing and add 'wifi.current'

Signed-off-by: San Mehat <san@google.com>

nexus: Add driver-stop/start, initial suspend support

Signed-off-by: San Mehat <san@google.com>

nexus: Add Controller suspend/resume callbacks, as well as locking

Signed-off-by: San Mehat <san@google.com>

nexus: Make ARP probing configurable for DhcpClient

Signed-off-by: San Mehat <san@google.com>

nexus: Add linkspeed / rssi retrieval

Signed-off-by: San Mehat <san@google.com>

nexus: Add WifiStatusPoller to track RSSI/linkspeed when associated

Signed-off-by: San Mehat <san@google.com>

nexus: Disable some debugging and add 'wifi.netcount' property

Signed-off-by: San Mehat <san@google.com>

nexus: Replace the hackish property system with something more flexible with namespaces

Signed-off-by: San Mehat <san@google.com>

libsysutils: Fix a few bugs in SocketListener

Signed-off-by: San Mehat <san@google.com>

nexus: PropertyManager: Add array support

Signed-off-by: San Mehat <san@google.com>

nexus: Clean up properties
Signed-off-by: San Mehat <san@google.com>

nexus: WifiController: Change name of 'CurrentNetwork' property

Signed-off-by: San Mehat <san@google.com>
2009-07-10 14:23:51 -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 c41d1c8074 libsysutils: Introduce 'ServiceManager', for starting/stopping init services
Signed-off-by: San Mehat <san@google.com>
2009-05-15 10:40:23 -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
Andy McFadden 6fc287b6f6 Fix sim build (need explicit -lpthread). 2009-05-13 07:25:03 -07:00
San Mehat dbdb0db516 libsysutils: Fix bug where we'd leak our control pipes when closing down a listener
Signed-off-by: San Mehat <san@google.com>
2009-05-12 15:50:26 -07:00
San Mehat d530592848 libsysutils: Send command arguments to the command, not the command again :P
Signed-off-by: San Mehat <san@google.com>
2009-05-12 14:35:15 -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
San Mehat 3d40729054 libsysutils: Add string.h to includes
Signed-off-by: San Mehat <san@google.com>
2009-05-07 08:49:30 -07:00
San Mehat 168415b822 libsysutils: New C++ system convenience library
This library contains re-usable classes for common
    system level daemons. Initial consumers of this library
    are 'nexus' and 'vold2'

Signed-off-by: San Mehat <san@google.com>
2009-05-06 15:12:02 -07:00