|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
2008-10-01 Dan Williams <dcbw@redhat.com>
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
Fix setting value comparison issue that caused some settings to look the
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
same when they were really different (rh #464417)
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
* libnm-util/nm-param-spec-specialized.c
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
- (type_is_fixed_size): return fundamental size of the fixed type too
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
- (nm_gvalues_compare_collection): use the fundamental fixed type size
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
in the comparison so that the _entire_ fixed type collection gets
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
compared rather than just the first 'len1' bytes
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
diff -up NetworkManager-0.7.0/libnm-util/nm-param-spec-specialized.c.compare-fix NetworkManager-0.7.0/libnm-util/nm-param-spec-specialized.c
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
--- NetworkManager-0.7.0/libnm-util/nm-param-spec-specialized.c.compare-fix 2008-10-01 17:41:41.000000000 -0400
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
+++ NetworkManager-0.7.0/libnm-util/nm-param-spec-specialized.c 2008-10-01 17:42:05.000000000 -0400
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
@@ -39,20 +39,41 @@ struct _NMParamSpecSpecialized {
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
static gint nm_gvalues_compare (const GValue *value1, const GValue *value2);
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
static gboolean
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
-type_is_fixed_size (GType type)
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
+type_is_fixed_size (GType type, gsize *tsize)
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
{
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
switch (type) {
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
case G_TYPE_CHAR:
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
+ if (tsize) *tsize = sizeof (char);
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
+ return TRUE;
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
case G_TYPE_UCHAR:
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
+ if (tsize) *tsize = sizeof (guchar);
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
+ return TRUE;
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
case G_TYPE_BOOLEAN:
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
+ if (tsize) *tsize = sizeof (gboolean);
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
+ return TRUE;
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
case G_TYPE_LONG:
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
+ if (tsize) *tsize = sizeof (glong);
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
+ return TRUE;
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
case G_TYPE_ULONG:
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
+ if (tsize) *tsize = sizeof (gulong);
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
+ return TRUE;
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
case G_TYPE_INT:
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
+ if (tsize) *tsize = sizeof (gint);
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
+ return TRUE;
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
case G_TYPE_UINT:
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
+ if (tsize) *tsize = sizeof (guint);
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
+ return TRUE;
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
case G_TYPE_INT64:
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
+ if (tsize) *tsize = sizeof (gint64);
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
+ return TRUE;
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
case G_TYPE_UINT64:
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
+ if (tsize) *tsize = sizeof (guint64);
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
+ return TRUE;
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
case G_TYPE_FLOAT:
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
+ if (tsize) *tsize = sizeof (gfloat);
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
+ return TRUE;
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
case G_TYPE_DOUBLE:
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
+ if (tsize) *tsize = sizeof (gdouble);
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
return TRUE;
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
default:
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
return FALSE;
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
@@ -232,8 +253,9 @@ nm_gvalues_compare_collection (const GVa
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
guint len1;
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
guint len2;
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
GType value_type = dbus_g_type_get_collection_specialization (G_VALUE_TYPE (value1));
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
+ gsize element_size = 0;
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
- if (type_is_fixed_size (value_type)) {
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
+ if (type_is_fixed_size (value_type, &element_size)) {
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
gpointer data1 = NULL;
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
gpointer data2 = NULL;
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
@@ -243,7 +265,7 @@ nm_gvalues_compare_collection (const GVa
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
if (len1 != len2)
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
ret = len1 < len2 ? -1 : len1 > len2;
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
else
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
- ret = memcmp (data1, data2, len1);
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
+ ret = memcmp (data1, data2, len1 * element_size);
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
} else {
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
GSList *list1 = NULL;
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
GSList *list2 = NULL;
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
@@ -372,8 +394,7 @@ nm_gvalues_compare (const GValue *value1
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
if (type1 != type2)
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
return type1 < type2 ? -1 : type1 > type2;
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
-
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
- if (type_is_fixed_size (type1))
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
+ if (type_is_fixed_size (type1, NULL))
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
ret = nm_gvalues_compare_fixed (value1, value2);
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
else if (type1 == G_TYPE_STRING)
|
|
![](https://seccdn.libravatar.org/avatar/766cb45f0a57830de6dbb279ae53b3d16b21ee1acc12e6a9b7f348715b069272?s=16&d=retro) |
c6f296b |
ret = nm_gvalues_compare_string (value1, value2);
|