[gom] gom: Verify whether a table name is valid before setting it
- From: Bastien Nocera <hadess src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gom] gom: Verify whether a table name is valid before setting it
- Date: Wed, 9 Aug 2017 11:19:56 +0000 (UTC)
commit 8e1777724a34aaa0f7361017a145e539318eedeb
Author: Bastien Nocera <hadess hadess net>
Date: Wed Aug 9 12:52:08 2017 +0200
gom: Verify whether a table name is valid before setting it
https://bugzilla.gnome.org/show_bug.cgi?id=785983
gom/gom-resource.c | 15 +++++++++++++++
1 files changed, 15 insertions(+), 0 deletions(-)
---
diff --git a/gom/gom-resource.c b/gom/gom-resource.c
index 25d934e..2d2b495 100644
--- a/gom/gom-resource.c
+++ b/gom/gom-resource.c
@@ -26,6 +26,7 @@
#include "gom-repository.h"
#include "gom-resource.h"
#include "gom-resource-priv.h"
+#include "reserved-keywords.h"
G_DEFINE_ABSTRACT_TYPE(GomResource, gom_resource, G_TYPE_OBJECT)
@@ -200,6 +201,19 @@ gom_resource_class_set_reference (GomResourceClass *resource_class,
g_strdup(ref_property_name), g_free);
}
+static gboolean
+is_valid_table_name (const gchar *table)
+{
+ guint i;
+
+ for (i = 0; i < G_N_ELEMENTS (reserved_keywords); i++) {
+ if (g_ascii_strcasecmp (reserved_keywords[i], table) == 0)
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
void
gom_resource_class_set_table (GomResourceClass *resource_class,
const gchar *table)
@@ -207,6 +221,7 @@ gom_resource_class_set_table (GomResourceClass *resource_class,
g_return_if_fail(GOM_IS_RESOURCE_CLASS(resource_class));
g_return_if_fail(table != NULL);
g_return_if_fail(strlen(table) <= sizeof(resource_class->table));
+ g_return_if_fail(is_valid_table_name(table));
g_snprintf(resource_class->table,
sizeof(resource_class->table),
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]