Common library for all Osmocom projects (libosmocore, libosmogsm, libosmovty, libosmogb, libosmosim, libosmousb, ...) https://osmocom.org/projects/libosmocore
Go to file
Neels Hofmeyr e750980d6c tlv_put: guard against NULL val and 0 len
For example encode_auth_info() from gsup.c calls
  msgb_tlv_put(msg, iei, 0, NULL)
to put a tag and len with content data following later.

However, this would cause a memcpy() from a NULL pointer, in tlv_put(). Allow
passing NULL and len = 0 for cases like the above:

If val is NULL, use memset(0) instead of memcpy().
If len is zero, do not copy nor memset anything.

Hence make tlv_put() behave in a well-defined and valid way for any and all
input args; no negative fallout is possible from this patch.

Add proper API doc comment.

Fixes a sanitizer build failure in gsup_test:

  ../../../../src/libosmocore/include/osmocom/gsm/tlv.h:99:2: runtime error: null pointer passed as argument 2, which is declared to never be null

Helps fix sanitizer build on debian 9.

Change-Id: I13dce9cd1228817890d3e81edeeb660c893c1d64
2017-11-20 17:22:42 +01:00
contrib jenkins: use osmo-clean-workspace.sh before and after build 2017-10-27 22:41:57 +02:00
debian Fix/Update copyright notices; Add SPDX annotation 2017-11-13 01:35:12 +09:00
doc OAP:remove design doc. osmocom-authn-protocol.txt 2017-02-15 17:56:39 +01:00
include tlv_put: guard against NULL val and 0 len 2017-11-20 17:22:42 +01:00
m4 conv_acc: Our code requires SSSE3, not just SSE3 2017-11-17 11:44:22 +01:00
src gprs_bssgp: bssgp_fc_in(): fix mem leak on queue overflow 2017-11-20 17:22:42 +01:00
tests bssgp_fc_test: sanitize: free fc struct when done 2017-11-20 17:22:42 +01:00
utils utils: Fix false positive in compiler warning 2017-11-16 16:16:08 +00:00
.gitignore gitignore all tests using mask 2017-06-24 16:20:44 +07:00
.gitreview add .gitreview 2016-05-19 06:39:13 +00:00
.mailmap Add .mailmap file for mapping mail addresses in shortlog 2016-08-08 13:12:17 +02:00
COPYING add GPL to project source 2010-02-21 09:21:30 +01:00
Doxyfile.codec.in doxygen: config: one enum val per line 2017-06-23 00:18:24 +00:00
Doxyfile.coding.in doxygen: config: one enum val per line 2017-06-23 00:18:24 +00:00
Doxyfile.core.in [doc] Ensure stats.h is parsed properly for Doxygen 2017-10-17 05:47:09 +00:00
Doxyfile.gb.in doxygen: enable AUTOBRIEF, drop \brief 2017-06-23 00:18:22 +00:00
Doxyfile.gsm.in [doc] Ensure include/crypt/* is part of libosmogsm documentation 2017-10-17 05:52:04 +00:00
Doxyfile.vty.in doxygen: config: one enum val per line 2017-06-23 00:18:24 +00:00
Makefile.am Fixup severe build performance issues 2017-10-04 16:26:37 +02:00
README.md README.md: Make sure all hyperlinks use <> 2017-03-17 21:31:42 +01:00
TODO-RELEASE msgb: add inline msgb_queue_free() 2017-11-20 14:22:15 +01:00
configure.ac conv_acc: Our code requires SSSE3, not just SSE3 2017-11-17 11:44:22 +01:00
git-version-gen add git-version-gen magic to automatically generate package version 2010-03-23 00:30:19 +08:00
libosmocodec.pc.in codec: Add the missing bits for include to install and pkgconfig to work 2010-10-24 18:23:10 +02:00
libosmocoding.pc.in libosmocoding: migrate transcoding routines from OsmoBTS 2017-03-07 01:06:38 +07:00
libosmocore.pc.in talloc: Untested change to unbreak build 2015-12-10 19:50:29 +01:00
libosmoctrl.pc.in remove our internal copy of talloc, use system libtalloc 2015-12-05 23:38:18 +01:00
libosmogb.pc.in remove our internal copy of talloc, use system libtalloc 2015-12-05 23:38:18 +01:00
libosmogsm.pc.in remove our internal copy of talloc, use system libtalloc 2015-12-05 23:38:18 +01:00
libosmosim.pc.in remove our internal copy of talloc, use system libtalloc 2015-12-05 23:38:18 +01:00
libosmovty.pc.in remove our internal copy of talloc, use system libtalloc 2015-12-05 23:38:18 +01:00
osmo-release.mk Fixup severe build performance issues 2017-10-04 16:26:37 +02:00
osmo-release.sh Fixup severe build performance issues 2017-10-04 16:26:37 +02:00

README.md

libosmocore - set of Osmocom core libraries

This repository contains a set of C-language libraries that form the core infrastructure of many Osmocom Open Source Mobile Communications projects.

Historically, a lot of this code was developed as part of the OpenBSC project, but which are of a more generic nature and thus useful to (at least) other programs that we develop in the sphere of Free Software / Open Source mobile communications.

There is no clear scope of it. We simply move all shared code between the various Osmocom projects in this library to avoid code duplication.

The libosmcoore.git repository build multiple libraries:

  • libosmocore contains some general-purpose functions like select-loop abstraction, message buffers, timers, linked lists
  • libosmovty contains routines related to the interactive command-line interface called VTY
  • libosmogsm contains definitions and helper code related to GSM protocols
  • libosmoctrl contains a shared implementation of the Osmocom control interface
  • libosmogb contains an implementation of the Gb interface with its NS/BSSGP protocols
  • libosmocodec contains an implementation of GSM voice codecs
  • libosmocoding contains an implementation of GSM channel coding
  • libosmosim contains infrastructure to interface SIM/UICC/USIM cards
  • libosmotrau contains encoding/decoding functions for A-bis TRAU frames

Homepage

The official homepage of the project is https://osmocom.org/projects/libosmocore/wiki/Libosmocore

GIT Repository

You can clone from the official libosmocore.git repository using

git clone git://git.osmocom.org/libosmocore.git

There is a cgit interface at http://git.osmocom.org/libosmocore/

Documentation

Doxygen-generated API documentation is generated during the build process, but also available online for each of the sub-libraries at http://ftp.osmocom.org/api/latest/libosmocore/

Mailing List

Discussions related to libosmocore are happening on the openbsc@lists.osmocom.org mailing list, please see https://lists.osmocom.org/mailman/listinfo/openbsc for subscription options and the list archive.

Please observe the Osmocom Mailing List Rules when posting.

Contributing

Our coding standards are described at https://osmocom.org/projects/cellular-infrastructure/wiki/Coding_standards

We us a gerrit based patch submission/review process for managing contributions. Please see https://osmocom.org/projects/cellular-infrastructure/wiki/Gerrit for more details

The current patch queue for libosmocore can be seen at https://gerrit.osmocom.org/#/q/project:libosmocore+status:open