aboutsummaryrefslogtreecommitdiffstats
path: root/CommonLibs
AgeCommit message (Collapse)AuthorFilesLines
2016-05-02common: Add mandatory length field to UDP receive callsTom Tsou3-17/+13
Current UDP receive reads up to MAX_UDP_LENGTH bytes into the passed in buffer, which may lead to buffer overflow if the write buffer is of insufficient size. Add mandatory length argument to UDP socket receive calls. Reported-by: Simone Margaritelli <simone@zimperium.com> Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-05-02common: Restrict UDP binding to localhost onlyTom Tsou1-1/+1
Reported security vulnerability where control and data UDP packets can be injected into the transceiver externally due to socket binding to all interfaces using INADDR_ANY. Existing socket interface does not allow specifying local address; only the local port and remote address/port are arguments. Restrict socket bind to localhost with INADDR_LOOPBACK. If external interfaces do need to be used, the API should be modified to allow specifying the local socket address. Reported-by: Simone Margaritelli <simone@zimperium.com> Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-04-20Common: Make sure gLogEarly() log to the same facilities as the normal log.Alexander Chemeris1-6/+33
2016-04-20Common: Get rid of a compilation warning.Alexander Chemeris1-1/+1
debugLogEarly was replaced to an empty space and arguments of the function became operators, grouped together by (): Configuration.cpp: In member function 'bool ConfigurationTable::defines(const string&)': Configuration.cpp:272:28: warning: left operand of comma operator has no effect [-Wunused-value] debugLogEarly(LOG_ALERT, "configuration parameter %s not found", key.c_str()); ^ This fix removes debugLogEarly together with its arguments.
2015-07-30Logger: Output ERR log messages to stderr as well.Alexander Chemeris1-1/+1
Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2015-07-30Common: Use a scoped lock in the Logger to avoid deadlock on thread cancel.Alexander Chemeris1-2/+1
Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2015-05-24Common: Log to console instead of loging to syslog by default.Alexander Chemeris1-2/+2
2015-05-24Common: Introduce a global variable to disable syslog logging.Alexander Chemeris2-8/+11
When we enable DEBUG logging level, syslog gets Gb's of data and can completely exhaust the file system free space. Now we can just enable it. This is not to say that logging to syslog it just not very useful in general.
2014-12-15CommonLibs: Add thread cancellation capabilityTom Tsou1-1/+8
For clean shutdown in the transceiver we need to cancel and join running threads for orderly unwinding. Thread cancellation points already exist, so we just need to be able to call on the threads to exit out when stopping or shutting down. Don't error when joining a NULL thread, which would be the case if a thread was stopped before ever being started to begin with. Signed-off-by: Tom Tsou <tom@tsou.cc>
2013-05-31syncing commonlibs with Many thanks to Michael Iedema for these patches, ↵kurtis.heimerl25-215/+2034
makes config a lot better. git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@5655 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2013-02-15Synced sqlite3utils with private and fixed a small recursive bug in ↵kurtis.heimerl1-8/+15
SIPEngine that was already fixed in private git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@4912 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-12-22Correction of trivial warnings.kurtis.heimerl2-2/+2
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@4670 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-12-17From b453f10d65dd1ff1df0dd3747adf63f4e1fd7d30 Mon Sep 17 00:00:00 2001kurtis.heimerl1-11/+34
From: Alexander Chemeris <Alexander.Chemeris@gmail.com> Date: Sun, 16 Dec 2012 17:44:10 +0400 Subject: [PATCH] Use gethostbyname2_r() instead of gethostbyname() if available. gethostbyname() is not thread-safe. It's recommended to use gethostbyname_r() or gethostbyname2_r() instead. --- CommonLibs/Sockets.cpp | 44 +++++++++++++++++++++++++++++++++----------- configure.ac | 4 ++++ 2 files changed, 37 insertions(+), 11 deletions(-) git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@4637 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-12-17From 32bbfc3c89b1c56672bf2fd3660a45c513ac54d4 Mon Sep 17 00:00:00 2001kurtis.heimerl1-2/+2
From: Alexander Chemeris <Alexander.Chemeris@gmail.com> Date: Sun, 16 Dec 2012 17:33:46 +0400 Subject: [PATCH 1/4] Fix typos in comments. --- CommonLibs/Logger.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@4635 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-12-16OH GOOD GIT MISSED THESE FILES THANKS GITkurtis.heimerl2-0/+231
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@4630 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-12-16Sylvain patch #2, with modifications:kurtis.heimerl5-17/+25
CommonLibs: Avoid direct syslog calls in ConfigurationTable We instead introduce a 'log early' facility in Logger.h to accomplish the same Signed-off-by: Sylvain Munaut <tnt@246tNt.com> I added similar code to the reporting functions, which did not exist when sylvain made this patch git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@4629 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-12-16Patch 4545 in private:kurtis.heimerl2-3/+12
Added support for performance-reporting counters. and Patch 4588 in private: For some reason, ReportingTest won't build on all systems. Since it is not part of the actuall application, I am commenting it out from the Makefile.am for now. git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@4627 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-11-23missed something in one of the socket patches. now works as expectedkurtis.heimerl1-0/+1
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@4516 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-11-23r4425 in private:kurtis.heimerl1-1/+2
Double check the FD set to be sure that the correct FD was really touched. git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@4513 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-11-23r4408 in private:kurtis.heimerl1-1/+1
Add code from David to keep the transceiver running when OpenBTS crashes and check if it is running when starting up. git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@4512 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-11-22Oh kay. Lots of patches trying to catch up to mainline:kurtis.heimerl1-0/+2
r4232: Major change in hos entries are removed from a TransactionTable. >From now on, the only place were entries are actually removed is in TransactionTable::innerRemove. Anywhere else, the remove methods just set a flag to tag the entry for later removal be innerRemove. This allows us to survive situations where we try to touch transactions that have been removed already. We still log at the ERR level, but no more segfaults. Updated all of the TransactionTable "find" methods to not return pointers to dead or removed tranactions. Updated find-by-channel search to return the transaction entry with the highest transaction number, which fixes a bug that sometimes picked up the wrong transaction records during EA TCH assignment. r4253: New exception class for when someone tries to use a "removed" transaction. r4254: Updated copyright notice. r4265: Unlock TransactionEntry::mLock while blocked on SIP message FIFOs in SIPEngine. This does wonders to reduce lock contention and make everything more snappy. Use Mutex::tryLock in TransactionEntry::dead and if lock is held, assume that it is not dead. This also does a lot to reduce lock contention. r4294: Change Um congestion response back to SIP 503. r4295: When deleting an entry that has failed to respond to paging, send a SIP 480 response so the switch knows that transaction is dead. r4412: Fixed bug that was causing SIPInterface to crash when the IMSI cannot be extracted from the To: header. git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@4497 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-11-14Alexander's patch #1:kurtis.heimerl3-2/+180
This patch makes a step towards using a system-wide sqlite3 lib. It moves sqlite3util.cpp/.h to CommonLibs and leaves only original sqlite3 files in the sqlite3 dir of OpenBTS. I do not claim any copyright over this change, as it's very basic. Looking forward to see it merged into mainline. git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@4467 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-11-11Alexander's patch #3: Configuration Tests should not include crashingkurtis.heimerl1-1/+5
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@4459 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-10-26merged private Config to public: r4211:kurtis.heimerl3-36/+267
Changes to ConfigurationTable class. Cleaner locking operations, fewer messages for normal operations, ALERT logging for truly abnormal operations. git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@4348 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-07-22Public release now works with g++4.7. In 4.7, unistd.h is no longer imported ↵kurtis.heimerl2-1/+2
by default git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@3918 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-03-08Harvind found a bug in BitVector.cpp:kurtis.heimerl1-1/+1
Basically the unpack method and fillField method assume MSB-first bit packing. The unpack method calls fillField for each byte that needs to be unpacked. The problem occurs on its final call to fillField when it has a partial byte to unpack; it uses the LSB bits instead of the MSB bits. git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@3288 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2011-12-24Locking gethostbyname call, as Alexander notes that it is not thread safekurtis.heimerl1-3/+4
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@2865 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2011-12-17Reverted bad function header. There are no timing inversion deadlocks, I ↵kurtis.heimerl1-1/+0
made those up. git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@2836 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2011-12-17Alexander's change. Fixes MTC bug by supporting 64bit processors in Timeval. ↵kurtis.heimerl1-2/+2
Math was bad. git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@2835 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2011-12-15Fixing Thomas's MTC receive bug. We don't have a ticket for it, but there ↵kurtis.heimerl1-0/+1
seemed to be a timing inversion deadlock in Interthread.h. We mostly duck it, instead of solving it. git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@2822 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2011-11-20git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@2583 ↵dburgess2-2/+21
19bc5d8c-e614-43d4-8b26-e1612bc8e597
2011-10-12Fixed the license notices.dburgess1-2/+0
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@2305 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2011-10-07Putting the actual OpenBTS P2.8 source code into the public SVN branch.dburgess30-0/+5041
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@2242 19bc5d8c-e614-43d4-8b26-e1612bc8e597