All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Allow xsm to be built with GCC 5.1.1 and greater
@ 2016-01-29 18:24 Machon Gregory
  2016-02-01  5:16 ` Bruce Ashfield
  0 siblings, 1 reply; 2+ messages in thread
From: Machon Gregory @ 2016-01-29 18:24 UTC (permalink / raw)
  To: meta-virtualization

The patch was cherrypicked from upstream Xen. See patch header for more information.
---
 ...e-p-policyvers-be-a-local-variable-ver-to.patch | 122 +++++++++++++++++++++
 recipes-extended/xen/xen_4.6.0.bb                  |   1 +
 2 files changed, 123 insertions(+)
 create mode 100644 recipes-extended/xen/files/xen-xsm-Make-p-policyvers-be-a-local-variable-ver-to.patch

diff --git a/recipes-extended/xen/files/xen-xsm-Make-p-policyvers-be-a-local-variable-ver-to.patch b/recipes-extended/xen/files/xen-xsm-Make-p-policyvers-be-a-local-variable-ver-to.patch
new file mode 100644
index 0000000..efe6e74
--- /dev/null
+++ b/recipes-extended/xen/files/xen-xsm-Make-p-policyvers-be-a-local-variable-ver-to.patch
@@ -0,0 +1,122 @@
+From 6a2f81459e1455d65a9a6f78dd2a0d0278619680 Mon Sep 17 00:00:00 2001
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+Date: Wed, 16 Sep 2015 15:57:27 -0400
+Subject: [PATCH] xen/xsm: Make p->policyvers be a local variable (ver) to shut
+ up GCC 5.1.1 warnings.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+policydb.c: In function ‘user_read’:
+policydb.c:1443:26: error: ‘buf[2]’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
+         usrdatum->bounds = le32_to_cpu(buf[2]);
+                          ^
+cc1: all warnings being treated as errors
+
+Which (as Andrew mentioned) is because GCC cannot assume
+that 'p->policyvers' has the same value between checks.
+
+We make it local, optimize the name to 'ver' and the warnings go away.
+We also update another call site with this modification to
+make it more inline with the rest of the functions.
+
+Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+Acked-by: Daniel De Graaf <dgdegra@tycho.nsa.gov>
+---
+ xen/xsm/flask/ss/policydb.c | 17 ++++++++++-------
+ 1 file changed, 10 insertions(+), 7 deletions(-)
+
+diff --git a/xen/xsm/flask/ss/policydb.c b/xen/xsm/flask/ss/policydb.c
+index a1060b1..eebfe9c 100644
+--- a/xen/xsm/flask/ss/policydb.c
++++ b/xen/xsm/flask/ss/policydb.c
+@@ -1258,6 +1258,7 @@ static int role_read(struct policydb *p, struct hashtab *h, void *fp)
+     int rc;
+     __le32 buf[3];
+     u32 len;
++    u32 ver = p->policyvers;
+ 
+     role = xzalloc(struct role_datum);
+     if ( !role )
+@@ -1266,7 +1267,7 @@ static int role_read(struct policydb *p, struct hashtab *h, void *fp)
+         goto out;
+     }
+ 
+-    if ( p->policyvers >= POLICYDB_VERSION_BOUNDARY )
++    if ( ver >= POLICYDB_VERSION_BOUNDARY )
+         rc = next_entry(buf, fp, sizeof(buf[0]) * 3);
+     else
+         rc = next_entry(buf, fp, sizeof(buf[0]) * 2);
+@@ -1276,7 +1277,7 @@ static int role_read(struct policydb *p, struct hashtab *h, void *fp)
+ 
+     len = le32_to_cpu(buf[0]);
+     role->value = le32_to_cpu(buf[1]);
+-    if ( p->policyvers >= POLICYDB_VERSION_BOUNDARY )
++    if ( ver >= POLICYDB_VERSION_BOUNDARY )
+         role->bounds = le32_to_cpu(buf[2]);
+ 
+     key = xmalloc_array(char, len + 1);
+@@ -1328,6 +1329,7 @@ static int type_read(struct policydb *p, struct hashtab *h, void *fp)
+     int rc;
+     __le32 buf[4];
+     u32 len;
++    u32 ver = p->policyvers;
+ 
+     typdatum = xzalloc(struct type_datum);
+     if ( !typdatum )
+@@ -1336,7 +1338,7 @@ static int type_read(struct policydb *p, struct hashtab *h, void *fp)
+         return rc;
+     }
+ 
+-    if ( p->policyvers >= POLICYDB_VERSION_BOUNDARY )
++    if ( ver >= POLICYDB_VERSION_BOUNDARY )
+         rc = next_entry(buf, fp, sizeof(buf[0]) * 4);
+     else
+         rc = next_entry(buf, fp, sizeof(buf[0]) * 3);
+@@ -1346,7 +1348,7 @@ static int type_read(struct policydb *p, struct hashtab *h, void *fp)
+ 
+     len = le32_to_cpu(buf[0]);
+     typdatum->value = le32_to_cpu(buf[1]);
+-    if ( p->policyvers >= POLICYDB_VERSION_BOUNDARY )
++    if ( ver >= POLICYDB_VERSION_BOUNDARY )
+     {
+         u32 prop = le32_to_cpu(buf[2]);
+ 
+@@ -1421,6 +1423,7 @@ static int user_read(struct policydb *p, struct hashtab *h, void *fp)
+     int rc;
+     __le32 buf[3];
+     u32 len;
++    u32 ver = p->policyvers;
+ 
+     usrdatum = xzalloc(struct user_datum);
+     if ( !usrdatum )
+@@ -1429,7 +1432,7 @@ static int user_read(struct policydb *p, struct hashtab *h, void *fp)
+         goto out;
+     }
+ 
+-    if ( p->policyvers >= POLICYDB_VERSION_BOUNDARY )
++    if ( ver >= POLICYDB_VERSION_BOUNDARY )
+         rc = next_entry(buf, fp, sizeof(buf[0]) * 3);
+     else
+         rc = next_entry(buf, fp, sizeof(buf[0]) * 2);
+@@ -1439,7 +1442,7 @@ static int user_read(struct policydb *p, struct hashtab *h, void *fp)
+ 
+     len = le32_to_cpu(buf[0]);
+     usrdatum->value = le32_to_cpu(buf[1]);
+-    if ( p->policyvers >= POLICYDB_VERSION_BOUNDARY )
++    if ( ver >= POLICYDB_VERSION_BOUNDARY )
+         usrdatum->bounds = le32_to_cpu(buf[2]);
+ 
+     key = xmalloc_array(char, len + 1);
+@@ -1457,7 +1460,7 @@ static int user_read(struct policydb *p, struct hashtab *h, void *fp)
+     if ( rc )
+         goto bad;
+ 
+-    if ( p->policyvers >= POLICYDB_VERSION_MLS )
++    if ( ver >= POLICYDB_VERSION_MLS )
+     {
+         rc = mls_read_range_helper(&usrdatum->range, fp);
+         if ( rc )
+-- 
+2.1.0
+
diff --git a/recipes-extended/xen/xen_4.6.0.bb b/recipes-extended/xen/xen_4.6.0.bb
index 92975a0..4939275 100644
--- a/recipes-extended/xen/xen_4.6.0.bb
+++ b/recipes-extended/xen/xen_4.6.0.bb
@@ -3,6 +3,7 @@ require xen.inc
 SRC_URI = " \
     http://bits.xensource.com/oss-xen/release/${PV}/xen-${PV}.tar.gz \
     file://xen-x86-Fix-up-rules-when-forcing-mno-sse.patch \
+    file://xen-xsm-Make-p-policyvers-be-a-local-variable-ver-to.patch \
     "
 
 SRC_URI[md5sum] = "48e232f90927c08326a7b52bb06f49bc"
-- 
2.1.0



^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] Allow xsm to be built with GCC 5.1.1 and greater
  2016-01-29 18:24 [PATCH] Allow xsm to be built with GCC 5.1.1 and greater Machon Gregory
@ 2016-02-01  5:16 ` Bruce Ashfield
  0 siblings, 0 replies; 2+ messages in thread
From: Bruce Ashfield @ 2016-02-01  5:16 UTC (permalink / raw)
  To: Machon Gregory; +Cc: meta-virtualization

[-- Attachment #1: Type: text/plain, Size: 6940 bytes --]

I just merged some pending Xen updates, and this no longer applies cleanly
to master.

Normally I'd just fix it on merge, but the patch to meta-virtualization
doesn't
have your Signed-off-by .. so if you can rebase this to master, and
re-submit
with that sign off .. that would be great.

Bruce



On Fri, Jan 29, 2016 at 1:24 PM, Machon Gregory <mbgrego@tycho.nsa.gov>
wrote:

> The patch was cherrypicked from upstream Xen. See patch header for more
> information.
> ---
>  ...e-p-policyvers-be-a-local-variable-ver-to.patch | 122
> +++++++++++++++++++++
>  recipes-extended/xen/xen_4.6.0.bb                  |   1 +
>  2 files changed, 123 insertions(+)
>  create mode 100644
> recipes-extended/xen/files/xen-xsm-Make-p-policyvers-be-a-local-variable-ver-to.patch
>
> diff --git
> a/recipes-extended/xen/files/xen-xsm-Make-p-policyvers-be-a-local-variable-ver-to.patch
> b/recipes-extended/xen/files/xen-xsm-Make-p-policyvers-be-a-local-variable-ver-to.patch
> new file mode 100644
> index 0000000..efe6e74
> --- /dev/null
> +++
> b/recipes-extended/xen/files/xen-xsm-Make-p-policyvers-be-a-local-variable-ver-to.patch
> @@ -0,0 +1,122 @@
> +From 6a2f81459e1455d65a9a6f78dd2a0d0278619680 Mon Sep 17 00:00:00 2001
> +From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
> +Date: Wed, 16 Sep 2015 15:57:27 -0400
> +Subject: [PATCH] xen/xsm: Make p->policyvers be a local variable (ver) to
> shut
> + up GCC 5.1.1 warnings.
> +MIME-Version: 1.0
> +Content-Type: text/plain; charset=UTF-8
> +Content-Transfer-Encoding: 8bit
> +
> +policydb.c: In function ‘user_read’:
> +policydb.c:1443:26: error: ‘buf[2]’ may be used uninitialized in this
> function [-Werror=maybe-uninitialized]
> +         usrdatum->bounds = le32_to_cpu(buf[2]);
> +                          ^
> +cc1: all warnings being treated as errors
> +
> +Which (as Andrew mentioned) is because GCC cannot assume
> +that 'p->policyvers' has the same value between checks.
> +
> +We make it local, optimize the name to 'ver' and the warnings go away.
> +We also update another call site with this modification to
> +make it more inline with the rest of the functions.
> +
> +Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
> +Acked-by: Daniel De Graaf <dgdegra@tycho.nsa.gov>
> +---
> + xen/xsm/flask/ss/policydb.c | 17 ++++++++++-------
> + 1 file changed, 10 insertions(+), 7 deletions(-)
> +
> +diff --git a/xen/xsm/flask/ss/policydb.c b/xen/xsm/flask/ss/policydb.c
> +index a1060b1..eebfe9c 100644
> +--- a/xen/xsm/flask/ss/policydb.c
> ++++ b/xen/xsm/flask/ss/policydb.c
> +@@ -1258,6 +1258,7 @@ static int role_read(struct policydb *p, struct
> hashtab *h, void *fp)
> +     int rc;
> +     __le32 buf[3];
> +     u32 len;
> ++    u32 ver = p->policyvers;
> +
> +     role = xzalloc(struct role_datum);
> +     if ( !role )
> +@@ -1266,7 +1267,7 @@ static int role_read(struct policydb *p, struct
> hashtab *h, void *fp)
> +         goto out;
> +     }
> +
> +-    if ( p->policyvers >= POLICYDB_VERSION_BOUNDARY )
> ++    if ( ver >= POLICYDB_VERSION_BOUNDARY )
> +         rc = next_entry(buf, fp, sizeof(buf[0]) * 3);
> +     else
> +         rc = next_entry(buf, fp, sizeof(buf[0]) * 2);
> +@@ -1276,7 +1277,7 @@ static int role_read(struct policydb *p, struct
> hashtab *h, void *fp)
> +
> +     len = le32_to_cpu(buf[0]);
> +     role->value = le32_to_cpu(buf[1]);
> +-    if ( p->policyvers >= POLICYDB_VERSION_BOUNDARY )
> ++    if ( ver >= POLICYDB_VERSION_BOUNDARY )
> +         role->bounds = le32_to_cpu(buf[2]);
> +
> +     key = xmalloc_array(char, len + 1);
> +@@ -1328,6 +1329,7 @@ static int type_read(struct policydb *p, struct
> hashtab *h, void *fp)
> +     int rc;
> +     __le32 buf[4];
> +     u32 len;
> ++    u32 ver = p->policyvers;
> +
> +     typdatum = xzalloc(struct type_datum);
> +     if ( !typdatum )
> +@@ -1336,7 +1338,7 @@ static int type_read(struct policydb *p, struct
> hashtab *h, void *fp)
> +         return rc;
> +     }
> +
> +-    if ( p->policyvers >= POLICYDB_VERSION_BOUNDARY )
> ++    if ( ver >= POLICYDB_VERSION_BOUNDARY )
> +         rc = next_entry(buf, fp, sizeof(buf[0]) * 4);
> +     else
> +         rc = next_entry(buf, fp, sizeof(buf[0]) * 3);
> +@@ -1346,7 +1348,7 @@ static int type_read(struct policydb *p, struct
> hashtab *h, void *fp)
> +
> +     len = le32_to_cpu(buf[0]);
> +     typdatum->value = le32_to_cpu(buf[1]);
> +-    if ( p->policyvers >= POLICYDB_VERSION_BOUNDARY )
> ++    if ( ver >= POLICYDB_VERSION_BOUNDARY )
> +     {
> +         u32 prop = le32_to_cpu(buf[2]);
> +
> +@@ -1421,6 +1423,7 @@ static int user_read(struct policydb *p, struct
> hashtab *h, void *fp)
> +     int rc;
> +     __le32 buf[3];
> +     u32 len;
> ++    u32 ver = p->policyvers;
> +
> +     usrdatum = xzalloc(struct user_datum);
> +     if ( !usrdatum )
> +@@ -1429,7 +1432,7 @@ static int user_read(struct policydb *p, struct
> hashtab *h, void *fp)
> +         goto out;
> +     }
> +
> +-    if ( p->policyvers >= POLICYDB_VERSION_BOUNDARY )
> ++    if ( ver >= POLICYDB_VERSION_BOUNDARY )
> +         rc = next_entry(buf, fp, sizeof(buf[0]) * 3);
> +     else
> +         rc = next_entry(buf, fp, sizeof(buf[0]) * 2);
> +@@ -1439,7 +1442,7 @@ static int user_read(struct policydb *p, struct
> hashtab *h, void *fp)
> +
> +     len = le32_to_cpu(buf[0]);
> +     usrdatum->value = le32_to_cpu(buf[1]);
> +-    if ( p->policyvers >= POLICYDB_VERSION_BOUNDARY )
> ++    if ( ver >= POLICYDB_VERSION_BOUNDARY )
> +         usrdatum->bounds = le32_to_cpu(buf[2]);
> +
> +     key = xmalloc_array(char, len + 1);
> +@@ -1457,7 +1460,7 @@ static int user_read(struct policydb *p, struct
> hashtab *h, void *fp)
> +     if ( rc )
> +         goto bad;
> +
> +-    if ( p->policyvers >= POLICYDB_VERSION_MLS )
> ++    if ( ver >= POLICYDB_VERSION_MLS )
> +     {
> +         rc = mls_read_range_helper(&usrdatum->range, fp);
> +         if ( rc )
> +--
> +2.1.0
> +
> diff --git a/recipes-extended/xen/xen_4.6.0.bb b/recipes-extended/xen/
> xen_4.6.0.bb
> index 92975a0..4939275 100644
> --- a/recipes-extended/xen/xen_4.6.0.bb
> +++ b/recipes-extended/xen/xen_4.6.0.bb
> @@ -3,6 +3,7 @@ require xen.inc
>  SRC_URI = " \
>      http://bits.xensource.com/oss-xen/release/${PV}/xen-${PV}.tar.gz \
>      file://xen-x86-Fix-up-rules-when-forcing-mno-sse.patch \
> +    file://xen-xsm-Make-p-policyvers-be-a-local-variable-ver-to.patch \
>      "
>
>  SRC_URI[md5sum] = "48e232f90927c08326a7b52bb06f49bc"
> --
> 2.1.0
>
> --
> _______________________________________________
> meta-virtualization mailing list
> meta-virtualization@yoctoproject.org
> https://lists.yoctoproject.org/listinfo/meta-virtualization
>



-- 
"Thou shalt not follow the NULL pointer, for chaos and madness await thee
at its end"

[-- Attachment #2: Type: text/html, Size: 9078 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2016-02-01  5:16 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-01-29 18:24 [PATCH] Allow xsm to be built with GCC 5.1.1 and greater Machon Gregory
2016-02-01  5:16 ` Bruce Ashfield

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.