1. 24 Oct, 2020 1 commit
  2. 11 Sep, 2020 1 commit
  3. 29 Jul, 2020 2 commits
  4. 24 May, 2020 1 commit
  5. 02 May, 2020 3 commits
  6. 20 Apr, 2020 2 commits
    • Amaury Pouly's avatar
      locator: fix logic error in the destructor · d15174d1
      Amaury Pouly authored
      The current code calls the destructor of the base class *first* and *then* does
      some cleanup, which is a no-no. Luckily it doesn't crash but it creates a subtle
      memory leak: the code tries to disconnect a signal from an object but since this
      object is NULLed in the base class destructor, the disconnect will just print
      a warning and leak the closure.
      d15174d1
    • Amaury Pouly's avatar
      Fix two memory leaks. · 0aaff7e6
      Amaury Pouly authored
      The current code is leaking a DBUS proxy and a TimeThreshold object on *each*
      client disconnect. Since some clients like to connect/disconnect every few seconds
      or minute, this leaks like crazy after a few hours.
      0aaff7e6
  7. 15 Apr, 2020 1 commit
  8. 31 Mar, 2020 2 commits
  9. 18 Mar, 2020 1 commit
  10. 19 Feb, 2020 4 commits
  11. 18 Feb, 2020 1 commit
    • Will Thompson's avatar
      mozilla: handle wpa_bss_get_ssid() returning NULL · 6366d56c
      Will Thompson authored
      On my Endless OS system running 2.5.2, I see the following crash
      reasonably often:
      
          #0  0x00007fdc12e57300 in g_bit_lock () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
          #1  0x00007fdc12ec38f7 in g_variant_n_children () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
          #2  0x00005562e11de273 in variant_to_string (variant=0x0, len=len@entry=0x0) at ../src/gclue-mozilla.c:49
                  n_bytes = <optimized out>
                  i = <optimized out>
                  ret = <optimized out>
          #3  0x00005562e11de4f8 in get_ssid_from_bss (bss=0x5562e2c896d0) at ../src/gclue-mozilla.c:71
                  variant = <optimized out>
                  variant = <optimized out>
          #4  gclue_mozilla_should_ignore_bss (bss=bss@entry=0x5562e2c896d0) at ../src/gclue-mozilla.c:414
                  ssid = <optimized out>
                  bssid = <optimized out>
          #5  0x00005562e11ddaba in on_bss_proxy_ready (source_object=<optimized out>, res=<optimized out>, user_data=0x5562e2c7a2d0) at ../src/gclue-wifi.c:313
                  wifi = 0x5562e2c7a2d0
                  bss = 0x5562e2c896d0
                  error = 0x0
                  ssid = <optimized out>
      
      In frame 2, 'variant' is NULL. In 2.5.2, get_ssid_from_bss looks like
      this:
      
          static gboolean
          get_ssid_from_bss (WPABSS *bss)
          {
                  GVariant *variant = wpa_bss_get_ssid (bss);
      
                  return variant_to_string (variant, NULL);
          }
      
      Since 2.5.2, bdaf6069 added a NULL check
      to this function – which I think would fix my crash. Then
      3b7a7d2a removed this NULL check again
      without explanation!
      
      It seems that, in practice, wpa_bss_get_ssid() can return NULL, so we
      must handle this case.
      6366d56c
  12. 26 Nov, 2019 1 commit
    • Zeeshan Ali's avatar
      LocationSource::start/stop should return TRUE if already in target state · 0661107f
      Zeeshan Ali authored
      If a source is already started/active and start() is called on it, it
      shouuldn't return FALSE as that indicates a failure to start. The same
      goes for stop() and inactive state.
      
      In case of stop() being called on an already inactive source, the actual
      source implementation will not do rest of the teardown and could end up in
      a state where the object has been finalized while its resources are still
      not freed. Not only does that constitute leaks but these resources include
      timeouts that access the object that has already been freed.
      
      It is my hope that this solves some of the crashes and leaks we still are
      getting reports of.
      
      Fixes #117 (hopefully!).
      0661107f
  13. 22 Nov, 2019 4 commits
    • Zeeshan Ali's avatar
      Exclude portal code from gobject-introspection · a1cbf6b4
      Zeeshan Ali authored
      Otherwise, we get a lot of warnings:
      
      ```
      libgeoclue/xdp-location.h:25: Warning: Geoclue: symbol='XdpLocation': Unknown namespace for identifier 'XdpLocation'
      libgeoclue/xdp-location.h:26: Warning: Geoclue: symbol='XdpLocationIface': Unknown namespace for identifier 'XdpLocationIface'
      libgeoclue/xdp-location.h:59: Warning: Geoclue: symbol='xdp_location_get_type': Unknown namespace for symbol 'xdp_location_get_type'
      libgeoclue/xdp-location.h:61: Warning: Geoclue: symbol='xdp_location_interface_info': Unknown namespace for symbol 'xdp_location_interface_info'
      libgeoclue/xdp-location.h:62: Warning: Geoclue: symbol='xdp_location_override_properties': Unknown namespace for symbol 'xdp_location_override_properties'
      libgeoclue/xdp-location.h:66: Warning: Geoclue: symbol='xdp_location_complete_create_session': Unknown namespace for symbol 'xdp_location_complete_create_session'
      libgeoclue/xdp-location.h:71: Warning: Geoclue: symbol='xdp_location_complete_start': Unknown namespace for symbol 'xdp_location_complete_start'
      libgeoclue/xdp-location.h:79: Warning: Geoclue: symbol='xdp_location_emit_location_updated': Unknown namespace for symbol 'xdp_location_emit_location_updated'
      libgeoclue/xdp-location.h:87: Warning: Geoclue: symbol='xdp_location_call_create_session': Unknown namespace for symbol 'xdp_location_call_create_session'
      libgeoclue/xdp-location.h:94: Warning: Geoclue: symbol='xdp_location_call_create_session_finish': Unknown namespace for symbol 'xdp_location_call_create_session_finish'
      libgeoclue/xdp-location.h:100: Warning: Geoclue: symbol='xdp_location_call_create_session_sync': Unknown namespace for symbol 'xdp_location_call_create_session_sync'
      libgeoclue/xdp-location.h:107: Warning: Geoclue: symbol='xdp_location_call_start': Unknown namespace for symbol 'xdp_location_call_start'
      libgeoclue/xdp-location.h:116: Warning: Geoclue: symbol='xdp_location_call_start_finish': Unknown namespace for symbol 'xdp_location_call_start_finish'
      libgeoclue/xdp-location.h:122: Warning: Geoclue: symbol='xdp_location_call_start_sync': Unknown namespace for symbol 'xdp_location_call_start_sync'
      libgeoclue/xdp-location.h:134: Warning: Geoclue: symbol='xdp_location_get_version': Unknown namespace for symbol 'xdp_location_get_version'
      libgeoclue/xdp-location.h:135: Warning: Geoclue: symbol='xdp_location_set_version': Unknown namespace for symbol 'xdp_location_set_version'
      libgeoclue/xdp-location.h:147: Warning: Geoclue: symbol='XdpLocationProxy': Unknown namespace for identifier 'XdpLocationProxy'
      libgeoclue/xdp-location.h:148: Warning: Geoclue: symbol='XdpLocationProxyClass': Unknown namespace for identifier 'XdpLocationProxyClass'
      libgeoclue/xdp-location.h:149: Warning: Geoclue: symbol='XdpLocationProxyPrivate': Unknown namespace for identifier 'XdpLocationProxyPrivate'
      libgeoclue/xdp-location.h:163: Warning: Geoclue: symbol='xdp_location_proxy_get_type': Unknown namespace for symbol 'xdp_location_proxy_get_type'
      libgeoclue/xdp-location.h:169: Warning: Geoclue: symbol='xdp_location_proxy_new': Unknown namespace for symbol 'xdp_location_proxy_new'
      libgeoclue/xdp-location.h:177: Warning: Geoclue: symbol='xdp_location_proxy_new_finish': Unknown namespace for symbol 'xdp_location_proxy_new_finish'
      libgeoclue/xdp-location.h:180: Warning: Geoclue: symbol='xdp_location_proxy_new_sync': Unknown namespace for symbol 'xdp_location_proxy_new_sync'
      libgeoclue/xdp-location.h:188: Warning: Geoclue: symbol='xdp_location_proxy_new_for_bus': Unknown namespace for symbol 'xdp_location_proxy_new_for_bus'
      libgeoclue/xdp-location.h:196: Warning: Geoclue: symbol='xdp_location_proxy_new_for_bus_finish': Unknown namespace for symbol 'xdp_location_proxy_new_for_bus_finish'
      libgeoclue/xdp-location.h:199: Warning: Geoclue: symbol='xdp_location_proxy_new_for_bus_sync': Unknown namespace for symbol 'xdp_location_proxy_new_for_bus_sync'
      libgeoclue/xdp-location.h:217: Warning: Geoclue: symbol='XdpLocationSkeleton': Unknown namespace for identifier 'XdpLocationSkeleton'
      libgeoclue/xdp-location.h:218: Warning: Geoclue: symbol='XdpLocationSkeletonClass': Unknown namespace for identifier 'XdpLocationSkeletonClass'
      libgeoclue/xdp-location.h:219: Warning: Geoclue: symbol='XdpLocationSkeletonPrivate': Unknown namespace for identifier 'XdpLocationSkeletonPrivate'
      libgeoclue/xdp-location.h:233: Warning: Geoclue: symbol='xdp_location_skeleton_get_type': Unknown namespace for symbol 'xdp_location_skeleton_get_type'
      libgeoclue/xdp-location.h:239: Warning: Geoclue: symbol='xdp_location_skeleton_new': Unknown namespace for symbol 'xdp_location_skeleton_new'
      libgeoclue/xdp-location.h:20: Warning: Geoclue: symbol='XDP_LOCATION': Unknown namespace for symbol 'XDP_LOCATION'
      libgeoclue/xdp-location.h:21: Warning: Geoclue: symbol='XDP_IS_LOCATION': Unknown namespace for symbol 'XDP_IS_LOCATION'
      libgeoclue/xdp-location.h:22: Warning: Geoclue: symbol='XDP_LOCATION_GET_IFACE': Unknown namespace for symbol 'XDP_LOCATION_GET_IFACE'
      libgeoclue/xdp-location.h:141: Warning: Geoclue: symbol='XDP_LOCATION_PROXY': Unknown namespace for symbol 'XDP_LOCATION_PROXY'
      libgeoclue/xdp-location.h:142: Warning: Geoclue: symbol='XDP_LOCATION_PROXY_CLASS': Unknown namespace for symbol 'XDP_LOCATION_PROXY_CLASS'
      libgeoclue/xdp-location.h:143: Warning: Geoclue: symbol='XDP_LOCATION_PROXY_GET_CLASS': Unknown namespace for symbol 'XDP_LOCATION_PROXY_GET_CLASS'
      libgeoclue/xdp-location.h:144: Warning: Geoclue: symbol='XDP_IS_LOCATION_PROXY': Unknown namespace for symbol 'XDP_IS_LOCATION_PROXY'
      libgeoclue/xdp-location.h:145: Warning: Geoclue: symbol='XDP_IS_LOCATION_PROXY_CLASS': Unknown namespace for symbol 'XDP_IS_LOCATION_PROXY_CLASS'
      libgeoclue/xdp-location.h:211: Warning: Geoclue: symbol='XDP_LOCATION_SKELETON': Unknown namespace for symbol 'XDP_LOCATION_SKELETON'
      libgeoclue/xdp-location.h:212: Warning: Geoclue: symbol='XDP_LOCATION_SKELETON_CLASS': Unknown namespace for symbol 'XDP_LOCATION_SKELETON_CLASS'
      libgeoclue/xdp-location.h:213: Warning: Geoclue: symbol='XDP_LOCATION_SKELETON_GET_CLASS': Unknown namespace for symbol 'XDP_LOCATION_SKELETON_GET_CLASS'
      libgeoclue/xdp-location.h:214: Warning: Geoclue: symbol='XDP_IS_LOCATION_SKELETON': Unknown namespace for symbol 'XDP_IS_LOCATION_SKELETON'
      libgeoclue/xdp-location.h:215: Warning: Geoclue: symbol='XDP_IS_LOCATION_SKELETON_CLASS': Unknown namespace for symbol 'XDP_IS_LOCATION_SKELETON_CLASS'
      libgeoclue/gclue-manager.h:248: Warning: Geoclue: Unknown namespace for identifier 'XdpLocationIface'
      libgeoclue/gclue-manager.h:248: Warning: Geoclue: Unknown namespace for identifier 'XdpLocationProxy'
      libgeoclue/gclue-manager.h:248: Warning: Geoclue: Unknown namespace for identifier 'XdpLocationProxyClass'
      libgeoclue/gclue-manager.h:248: Warning: Geoclue: Unknown namespace for identifier 'XdpLocationSkeleton'
      libgeoclue/gclue-manager.h:248: Warning: Geoclue: Unknown namespace for identifier 'XdpLocationSkeletonClass'
      ```
      
      Fixes#125.
      a1cbf6b4
    • Zeeshan Ali's avatar
      Move portal interface XML to appropriate directory · 134e03e1
      Zeeshan Ali authored
      All other interface files are there so should the portal XML file.
      134e03e1
    • Zeeshan Ali's avatar
      lib,docs: Document when client prop is NULL · a9d4487e
      Zeeshan Ali authored
      a9d4487e
    • Zeeshan Ali's avatar
      a0556f31
  14. 20 Nov, 2019 1 commit
  15. 18 Nov, 2019 1 commit
  16. 14 Nov, 2019 2 commits
    • Matthias Clasen's avatar
      gclue-simple: Add portal support · c9350715
      Matthias Clasen authored
      When running inside a flatpak sandbox, or when GTK_USE_PORTAL
      is set in the environment, talk to the location portal instead
      of GeoClue directly.
      
      In this situation, gclue_simple_get_client will return NULL.
      c9350715
    • Matthias Clasen's avatar
      where-am-I: Handle gclue_simple_get_client returning NULL · 79948926
      Matthias Clasen authored
      The incoming portal support will provide an implementation
      for GClueSimple that is not based on GClueClient, and
      gclue_simple_get_client will return NULL then.
      
      No need to crash in that case.
      79948926
  17. 18 Oct, 2019 1 commit
  18. 09 Oct, 2019 1 commit
    • Zeeshan Ali's avatar
      wifi: Remove failable checks before clearing state · 5203604b
      Zeeshan Ali authored
      If my logic is wrong anywhere, the interface proxy might already be NULL
      before disconnect_bss_signals() is called so let's not check for that
      before clearing the timeout.
      
      This hopefully fixes a crash on wifi scan timeout being called after the
      wifi object is destroyed.
      5203604b
  19. 01 Oct, 2019 4 commits
  20. 30 Sep, 2019 4 commits
  21. 27 Sep, 2019 2 commits
    • Zeeshan Ali's avatar
      Release 2.5.4 · a4108842
      Zeeshan Ali authored
      a4108842
    • Zeeshan Ali's avatar
      mozilla: Plug a leak · 459b26a3
      Zeeshan Ali authored
      We were leaking SSIDs like crazy.
      
      I really gotta get zbus into a useful state soon enough and oxidise
      geoclue (#103) cause these issues waste so much time and also users'
      resources until fixed.
      
      Fixes #120.
      459b26a3