[ovs-git] [openvswitch/ovs] 932653: ovn-controller: Fix potential use-after-free in ge...

GitHub noreply at github.com
Tue Jul 28 18:07:34 UTC 2015


  Branch: refs/heads/master
  Home:   https://github.com/openvswitch/ovs
  Commit: 9326534c9caf110f4425b74769bf76290db0d876
      https://github.com/openvswitch/ovs/commit/9326534c9caf110f4425b74769bf76290db0d876
  Author: Ben Pfaff <blp at nicira.com>
  Date:   2015-07-28 (Tue, 28 Jul 2015)

  Changed paths:
    M ovn/controller/ovn-controller.c

  Log Message:
  -----------
  ovn-controller: Fix potential use-after-free in get_core_config().

It's unsafe to hold a pointer to a row in the IDL across calls to
ovsdb_idl_run() for that IDL.

Signed-off-by: Ben Pfaff <blp at nicira.com>
Acked-by: Russell Bryant <rbryant at redhat.com>


  Commit: acd55f58a54ebd0d5352e41b5dfb39cb740b5688
      https://github.com/openvswitch/ovs/commit/acd55f58a54ebd0d5352e41b5dfb39cb740b5688
  Author: Ben Pfaff <blp at nicira.com>
  Date:   2015-07-28 (Tue, 28 Jul 2015)

  Changed paths:
    M ovn/controller/ovn-controller.c

  Log Message:
  -----------
  ovn-controller: Drop unnecessary checks for ovsdb_idl_is_alive().

The IDLs as created by ovn-controller always retry failed connections,
which means that ovsdb_idl_is_alive() will always report that they are
alive.

Signed-off-by: Ben Pfaff <blp at nicira.com>
Acked-by: Russell Bryant <rbryant at redhat.com>


  Commit: f1fd7657339abf6da99f878e863b31a295f7fbd9
      https://github.com/openvswitch/ovs/commit/f1fd7657339abf6da99f878e863b31a295f7fbd9
  Author: Ben Pfaff <blp at nicira.com>
  Date:   2015-07-28 (Tue, 28 Jul 2015)

  Changed paths:
    M ovn/controller/binding.c
    M ovn/controller/binding.h
    M ovn/controller/chassis.c
    M ovn/controller/chassis.h
    M ovn/controller/ovn-controller.c
    M ovn/controller/ovn-controller.h

  Log Message:
  -----------
  ovn-controller: Avoid blocking to commit OVSDB transactions.

Until now, ovn-controller has been full of loops that commit a transaction
to the OVS or OVN Southbound database.  These blocking loops delay other
work within ovn-controller.  They also make it unsafe to keep pointers to
database records within a single ovn-controller main loop, since calls
to ovsdb_idl_run() can cause IDL records to be destroyed.  This commit
drops all of the blocking calls, instead doing a single commit to the
databases at the end of each main loop.

Signed-off-by: Ben Pfaff <blp at nicira.com>
Acked-by: Russell Bryant <rbryant at redhat.com>


  Commit: 761fd08f83df3859291e206a964f57fbdbd9d6ec
      https://github.com/openvswitch/ovs/commit/761fd08f83df3859291e206a964f57fbdbd9d6ec
  Author: Ben Pfaff <blp at nicira.com>
  Date:   2015-07-28 (Tue, 28 Jul 2015)

  Changed paths:
    M ovn/controller/ofctrl.c
    M ovn/controller/ofctrl.h
    M ovn/controller/ovn-controller.c
    M ovn/controller/physical.c
    M ovn/controller/physical.h
    M ovn/controller/pipeline.c
    M ovn/controller/pipeline.h

  Log Message:
  -----------
  ovn-controller: Explicitly pass the flow table from function to function.

As I was working in ovn-controller, I found it hard to tell what code
produced and what code consumed the OpenFlow flow table, because it was
all implicit.  This commit makes the data structure an explicit variable
in the main loop, which makes it easier to see.

Signed-off-by: Ben Pfaff <blp at nicira.com>
Acked-by: Russell Bryant <rbryant at redhat.com>


  Commit: 422a9f73d31092ea6219de471ad23682f942444f
      https://github.com/openvswitch/ovs/commit/422a9f73d31092ea6219de471ad23682f942444f
  Author: Ben Pfaff <blp at nicira.com>
  Date:   2015-07-28 (Tue, 28 Jul 2015)

  Changed paths:
    M ovn/controller/binding.c
    M ovn/controller/binding.h
    M ovn/controller/chassis.c
    M ovn/controller/chassis.h
    M ovn/controller/ofctrl.c
    M ovn/controller/ofctrl.h
    M ovn/controller/ovn-controller.c
    M ovn/controller/ovn-controller.h
    M ovn/controller/physical.c
    M ovn/controller/physical.h

  Log Message:
  -----------
  ovn-controller: Pass 'br_int' explicitly to functions that need it.

I found it hard otherwise to see what code depended on this.

Signed-off-by: Ben Pfaff <blp at nicira.com>
Acked-by: Russell Bryant <rbryant at redhat.com>


Compare: https://github.com/openvswitch/ovs/compare/49af9a3d4447...422a9f73d310


More information about the git mailing list