Find a file
Lubomir Rintel 5f54ed3a27 libnm: avoid init_async NULL dereference on cancellable=0x0
(gdb) run c add type bond
  Starting program: /usr/bin/nmcli c add type bond
  Got object file from memory but can't read symbols: File truncated.
  [Thread debugging using libthread_db enabled]
  Using host libthread_db library "/lib64/libthread_db.so.1".
  [New Thread 0x7ffff39b2700 (LWP 13042)]
  [New Thread 0x7fffec4bc700 (LWP 13043)]

  (process:13038): GLib-GObject-CRITICAL **: g_object_ref: assertion 'G_IS_OBJECT (object)' failed

  Program received signal SIGTRAP, Trace/breakpoint trap.
  g_logv (log_domain=0x7ffff5cda224 "GLib-GObject", log_level=G_LOG_LEVEL_CRITICAL, format=<optimized out>, args=args@entry=0x7fffffffd290) at gmessages.c:1046
  1046              g_private_set (&g_log_depth, GUINT_TO_POINTER (depth));
  (gdb) bt
  #0  0x00007ffff59b6c70 in g_logv (log_domain=0x7ffff5cda224 "GLib-GObject", log_level=G_LOG_LEVEL_CRITICAL, format=<optimized out>, args=args@entry=0x7fffffffd290) at gmessages.c:1046
  #1  0x00007ffff59b6eaf in g_log (log_domain=log_domain@entry=0x7ffff5cda224 "GLib-GObject", log_level=log_level@entry=G_LOG_LEVEL_CRITICAL, format=format@entry=0x7ffff5a25a9d "%s: assertion '%s' failed")
      at gmessages.c:1079
  #2  0x00007ffff59b6ee9 in g_return_if_fail_warning (log_domain=log_domain@entry=0x7ffff5cda224 "GLib-GObject", pretty_function=pretty_function@entry=0x7ffff5cdd6b3 <__FUNCTION__.13314> "g_object_ref", expression=expression@entry=0x7ffff5cdc388 "G_IS_OBJECT (object)") at gmessages.c:1088
  #3  0x00007ffff5cb39aa in g_object_ref (_object=_object@entry=0x0) at gobject.c:3041
  #4  0x00007ffff7ad5418 in _nm_dbus_new_connection_async (cancellable=0x0, callback=<optimized out>, user_data=<optimized out>) at nm-dbus-helpers.c:131
  #5  0x00007ffff7ae58f1 in handle_property_changed (synchronously=0, pi=0x5555558a9610, value=0x7fffe40138a0, property_name=<optimized out>, self=0x555555831980 [NMRemoteSettings]) at nm-object.c:1115
  #6  0x00007ffff7ae58f1 in handle_property_changed (self=self@entry=0x555555831980 [NMRemoteSettings], dbus_name=<optimized out>, value=<optimized out>, synchronously=synchronously@entry=0) at nm-object.c:1186
  #7  0x00007ffff7ae59cb in process_properties_changed (self=0x555555831980 [NMRemoteSettings], properties=<optimized out>, synchronously=0) at nm-object.c:1218
  #8  0x00007ffff7ae5a7a in property_proxy_signal (proxy=<optimized out>, sender_name=<optimized out>, signal_name=<optimized out>, parameters=<optimized out>, user_data=0x555555831980) at nm-object.c:1234
  #9  0x00007ffff4d34d60 in ffi_call_unix64 () at ../src/x86/unix64.S:76
  #10 0x00007ffff4d347d1 in ffi_call (cif=cif@entry=0x7fffffffd7e0, fn=<optimized out>, rvalue=0x7fffffffd740, avalue=avalue@entry=0x7fffffffd6c0) at ../src/x86/ffi64.c:525
  #15 0x00007ffff5cca2ef in <emit signal ??? on instance 0x555555881c10 [NMDBusSettingsProxy]> (instance=instance@entry=0x555555881c10, signal_id=<optimized out>, detail=detail@entry=0) at gsignal.c:3365
      #11 0x00007ffff5caf6f4 in g_cclosure_marshal_generic (closure=0x5555558aa400, return_gvalue=0x0, n_param_values=<optimized out>, param_values=<optimized out>, invocation_hint=<optimized out>, marshal_data=0x0) at gclosure.c:1448
      #12 0x00007ffff5caeed5 in g_closure_invoke (closure=0x5555558aa400, return_value=return_value@entry=0x0, n_param_values=4, param_values=param_values@entry=0x7fffffffda10, invocation_hint=invocation_hint@entry=0x7fffffffd9b0) at gclosure.c:768
      #13 0x00007ffff5cc1202 in signal_emit_unlocked_R (node=node@entry=0x555555819270, detail=detail@entry=0, instance=instance@entry=0x555555881c10, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fffffffda10) at gsignal.c:3553
      #14 0x00007ffff5cca0c1 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fffffffdbd0) at gsignal.c:3309
  #16 0x00007ffff63d8bcc in on_signal_received (connection=<optimized out>, sender_name=0x0, object_path=<optimized out>, interface_name=<optimized out>, signal_name=0x7fffe40195b0 "PropertiesChanged", parameters=0x7fffe4031000, user_data=0x5555558a3f30) at gdbusproxy.c:917
  #17 0x00007ffff63c83b4 in emit_signal_instance_in_idle_cb (data=0x7fffe403a6d0) at gdbusconnection.c:3753
  #18 0x00007ffff59afb6b in g_main_context_dispatch (context=0x5555557eb530) at gmain.c:3064
  #19 0x00007ffff59afb6b in g_main_context_dispatch (context=context@entry=0x5555557eb530) at gmain.c:3663
  #20 0x00007ffff59aff08 in g_main_context_iterate (context=0x5555557eb530, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3734
  #21 0x00007ffff59b0232 in g_main_loop_run (loop=0x5555557e3440) at gmain.c:3928
  #22 0x000055555556fd57 in main (argc=<optimized out>, argv=<optimized out>) at nmcli.c:587
  (gdb)

https://bugzilla.gnome.org/show_bug.cgi?id=736962
2014-09-19 08:33:15 -04:00
callouts libnm: port to GDBus 2014-09-18 11:51:09 -04:00
clients libnm: port to GDBus 2014-09-18 11:51:09 -04:00
contrib/fedora contrib/rpm: use HTTPS for connectivity check URL (rh #1135777) 2014-09-05 23:24:08 +02:00
data dispatcher: rename executable to 'nm-dispatcher' 2014-06-06 13:43:45 -05:00
docs libnm: port to GDBus 2014-09-18 11:51:09 -04:00
examples libnm: port to GDBus 2014-09-18 11:51:09 -04:00
include nmtst: add NMTST_VARIANT_EDITOR() 2014-09-18 11:51:09 -04:00
initscript remove paldo initscript 2013-05-06 16:33:14 +02:00
introspection libnm: port to GDBus 2014-09-18 11:51:09 -04:00
libnm libnm: avoid init_async NULL dereference on cancellable=0x0 2014-09-19 08:33:15 -04:00
libnm-core libnm-core: don't return with a value in function returning void 2014-09-19 09:36:24 +02:00
libnm-glib libnm: ensure auto-registration only when not yet registered 2014-08-27 08:52:25 +02:00
libnm-util libnm-core, libnm-util: remove some useless code in nm-settings.c 2014-09-04 09:17:36 -04:00
m4 build/clang: fix detection of valid warning compiler flags 2014-08-01 13:16:33 +02:00
man man: add/update bonding and team examples in nm-settings-ifcfg-rh 2014-09-01 14:17:45 +02:00
po po: update Assamese (as) translation (bgo #736753) 2014-09-16 18:26:17 +02:00
policy policy: fix policy after dcbw/kill-at-console merge (bgo #707983) (rh #979416) 2014-01-24 12:32:43 -06:00
src libnm: port to GDBus 2014-09-18 11:51:09 -04:00
tools tools: fix test-networkmanager-service Settings.Connections 2014-09-18 11:51:07 -04:00
vapi vapi: add bindings for new_async methods (bgo #732253) 2014-07-16 17:11:02 -05:00
.dir-locals.el misc: add toplevel .dir-locals file that tells Emacs to show trailing whitespace 2013-03-08 15:15:28 +01:00
.gitignore libnm: port to GDBus 2014-09-18 11:51:09 -04:00
AUTHORS Update authors 2008-11-19 23:33:18 +00:00
autogen.sh build: remove setup of git-submodules in autogen.sh 2014-07-15 22:50:36 +02:00
ChangeLog fix typos in documentation and messages 2014-04-03 17:12:31 +02:00
configure.ac libnm: merge libnm-vpn into libnm 2014-09-18 11:51:07 -04:00
CONTRIBUTING doc: update code style docs 2009-10-07 12:28:10 -07:00
COPYING docs: create new master NM documentation module 2011-02-16 16:24:16 -06:00
MAINTAINERS Update MAINTAINERS 2007-09-02 23:57:41 +00:00
Makefile.am libnm: port to GDBus 2014-09-18 11:51:09 -04:00
Makefile.glib build: update Makefile.glib 2013-04-19 10:52:21 -04:00
NetworkManager.pc.in build: update NetworkManager.pc 2013-01-29 16:17:30 -05:00
NEWS trivial: typo in the NEWS 2014-06-09 09:15:40 +02:00
README trivial: typo fixes 2010-09-25 00:34:10 -05:00
TODO todo: remove item about finished VPN IPv6 support 2013-04-10 10:06:38 -05:00
valgrind.suppressions test: add valgrind suppressions 2014-02-18 20:33:10 +01:00

******************
2008-12-11: NetworkManager core daemon has moved to git.freedesktop.org!

git clone git://git.freedesktop.org/git/NetworkManager/NetworkManager.git
******************


Networking that Just Works
--------------------------

NetworkManager attempts to keep an active network connection available at all
times.  The point of NetworkManager is to make networking configuration and
setup as painless and automatic as possible.  NetworkManager is intended to
replace default route, replace other routes, set IP addresses, and in general
configure networking as NM sees fit (with the possibility of manual override as
necessary).  In effect, the goal of NetworkManager is to make networking Just
Work with a minimum of user hassle, but still allow customization and a high
level of manual network control.  If you have special needs, we'd like to hear
about them, but understand that NetworkManager is not intended for every
use-case.

NetworkManager will attempt to keep every network device in the system up and
active, as long as the device is available for use (has a cable plugged in,
the killswitch isn't turned on, etc).  Network connections can be set to
'autoconnect', meaning that NetworkManager will make that connection active
whenever it and the hardware is available.

"Settings services" store lists of user- or administrator-defined "connections",
which contain all the settings and parameters required to connect to a specific
network.  NetworkManager will _never_ activate a connection that is not in this
list, or that the user has not directed NetworkManager to connect to.


How it works:

The NetworkManager daemon runs as a privileged service (since it must access
and control hardware), but provides a D-Bus interface on the system bus to
allow for fine-grained control of networking.  NetworkManager does not store
connections or settings, it is only the mechanism by which those connections
are selected and activated.

To store pre-defined network connections, two separate services, the "system
settings service" and the "user settings service" store connection information
and provide these to NetworkManager, also via D-Bus.  Each settings service
can determine how and where it persistently stores the connection information;
for example, the GNOME applet stores its configuration in GConf, and the system
settings service stores it's config in distro-specific formats, or in a distro-
agnostic format, depending on user/administrator preference.

A variety of other system services are used by NetworkManager to provide
network functionality: wpa_supplicant for wireless connections and 802.1x
wired connections, pppd for PPP and mobile broadband connections, DHCP clients
for dynamic IP addressing, dnsmasq for proxy nameserver and DHCP server
functionality for internet connection sharing, and avahi-autoipd for IPv4
link-local addresses.  Most communication with these daemons occurs, again,
via D-Bus.


Why doesn't my network Just Work?

Driver problems are the #1 cause of why NetworkManager sometimes fails to
connect to wireless networks.  Often, the driver simply doesn't behave in a
consistent manner, or is just plain buggy.  NetworkManager supports _only_
those drivers that are shipped with the upstream Linux kernel, because only
those drivers can be easily fixed and debugged.  ndiswrapper, vendor binary
drivers, or other out-of-tree drivers may or may not work well with
NetworkManager, precisely because they have not been vetted and improved by the
open-source community, and because problems in these drivers usually cannot
be fixed.

Sometimes, command-line tools like 'iwconfig' will work, but NetworkManager will
fail.  This is again often due to buggy drivers, because these drivers simply
aren't expecting the dynamic requests that NetworkManager and wpa_supplicant
make.  Driver bugs should be filed in the bug tracker of the distribution being
run, since often distributions customize their kernel and drivers.

Sometimes, it really is NetworkManager's fault.  If you think that's the case,
please file a bug at http://bugzilla.gnome.org and choose the NetworkManager
component.  Attaching the output of /var/log/messages or /var/log/daemon.log
(wherever your distribution directs syslog's 'daemon' facility output) is often
very helpful, and (if you can get) a working wpa_supplicant config file helps
enormously.