1. 03 Apr, 2013 1 commit
  2. 02 Apr, 2013 3 commits
  3. 01 Apr, 2013 13 commits
  4. 28 Mar, 2013 1 commit
  5. 27 Mar, 2013 1 commit
  6. 26 Mar, 2013 6 commits
  7. 25 Mar, 2013 12 commits
  8. 23 Mar, 2013 1 commit
  9. 22 Mar, 2013 2 commits
    • Pavel Šimerda's avatar
      testing: support for valgrind memory checking · 2675af05
      Pavel Šimerda authored
      Use @VALGRIND_RULES@ in Makefile.am for modules that you want to check
      for memory leaks.
      2675af05
    • Dan Williams's avatar
      libnm-glib: fix use-after-free getting device vendor and product · d57198df
      Dan Williams authored
      Because _device_update_description() freed and update *both* the
      vendor and product description, if the function was not able to
      read one of them the first time, it would throw both away the second
      time and try re-read them.  That caused code like this:
      
      vendor = nm_device_get_vendor (device);
      product = nm_device_get_product (device);
      
      to be left with a freed 'vendor' value if _device_update_description()
      could not read the product when first called from nm_device_get_vendor(),
      because it would be called a second time from nm_device_get_product()
      and free priv->vendor and priv->product and then attempt to re-read them.
      
      Fix this by making the function return only one value so that the
      callers can control the liftime of the property they are trying to set.
      
      ==29355== Invalid read of size 8
      ==29355==    at 0x38F7289840: __GI_mempcpy (memcpy.S:122)
      ==29355==    by 0x38F7276F21: _IO_file_xsputn@@GLIBC_2.2.5 (fileops.c:1353)
      ==29355==    by 0x38F7247DA6: vfprintf (vfprintf.c:1615)
      ==29355==    by 0x38F7250E28: printf (printf.c:34)
      ==29355==    by 0x41E79F: print_fields (utils.c:351)
      ==29355==    by 0x414CAB: show_device_info (devices.c:636)
      ==29355==    by 0x415CE8: do_devices (devices.c:1094)
      ==29355==    by 0x41D9A9: start (nmcli.c:121)
      ==29355==    by 0x38F6E47A54: g_main_context_dispatch (gmain.c:2715)
      ==29355==    by 0x38F6E47D87: g_main_context_iterate.isra.24 (gmain.c:3290)
      ==29355==    by 0x38F6E48181: g_main_loop_run (gmain.c:3484)
      ==29355==    by 0x40CB89: main (nmcli.c:359)
      ==29355==  Address 0x50a0401 is 1 bytes inside a block of size 18 free'd
      ==29355==    at 0x4A077E6: free (vg_replace_malloc.c:446)
      ==29355==    by 0x38F6E4D79E: g_free (gmem.c:252)
      ==29355==    by 0x4C55F53: _device_update_description (nm-device.c:1417)
      ==29355==    by 0x4C56D26: nm_device_get_product (nm-device.c:1502)
      ==29355==    by 0x414B16: show_device_info (devices.c:620)
      ==29355==    by 0x415CE8: do_devices (devices.c:1094)
      ==29355==    by 0x41D9A9: start (nmcli.c:121)
      ==29355==    by 0x38F6E47A54: g_main_context_dispatch (gmain.c:2715)
      ==29355==    by 0x38F6E47D87: g_main_context_iterate.isra.24 (gmain.c:3290)
      ==29355==    by 0x38F6E48181: g_main_loop_run (gmain.c:3484)
      ==29355==    by 0x40CB89: main (nmcli.c:359)
      d57198df