aboutsummaryrefslogtreecommitdiffstats
path: root/src/wgtpkg-permissions.c
diff options
context:
space:
mode:
authorJosé Bollo <jose.bollo@iot.bzh>2016-03-16 16:05:28 +0100
committerJosé Bollo <jose.bollo@iot.bzh>2016-03-16 17:31:58 +0100
commit2c6fcae14552ab6e7addc82516617a135f86b5ca (patch)
treee6c8aff7b0fca5ef81c02bfb7c2d71ec6fc97046 /src/wgtpkg-permissions.c
parentabfae2b6d73d7be40ffbff8e8429f71d82df90b5 (diff)
cmake: improves error detection
Add detection of problem of cast. The problems are corrected in the patch. Change-Id: I8dc1e987531790860e390dea53ddf49d52339cb2 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
Diffstat (limited to 'src/wgtpkg-permissions.c')
-rw-r--r--src/wgtpkg-permissions.c19
1 files changed, 11 insertions, 8 deletions
diff --git a/src/wgtpkg-permissions.c b/src/wgtpkg-permissions.c
index 88bce05..9e061c8 100644
--- a/src/wgtpkg-permissions.c
+++ b/src/wgtpkg-permissions.c
@@ -34,9 +34,9 @@ struct permission {
static const char prefix_of_permissions[] = FWK_PREFIX_PERMISSION;
-static int nrpermissions = 0;
+static unsigned int nrpermissions = 0;
static struct permission *permissions = NULL;
-static int indexiter = 0;
+static unsigned int indexiter = 0;
/* check is the name has the correct prefix for permissions */
int is_standard_permission(const char *name)
@@ -47,7 +47,7 @@ int is_standard_permission(const char *name)
/* retrieves the permission of name */
static struct permission *get_permission(const char *name)
{
- int i;
+ unsigned int i;
for (i = 0 ; i < nrpermissions ; i++)
if (0 == strcmp(permissions[i].name, name))
@@ -60,7 +60,8 @@ static struct permission *add_permission(const char *name)
{
struct permission *p = get_permission(name);
if (!p) {
- p = realloc(permissions, ((nrpermissions + 8) & ~7) * sizeof(*p));
+ p = realloc(permissions,
+ ((nrpermissions + 8) & ~(unsigned)7) * sizeof(*p));
if (p) {
permissions = p;
p = permissions + nrpermissions;
@@ -68,6 +69,8 @@ static struct permission *add_permission(const char *name)
p->name = strdup(name);
if (!p->name)
p = NULL;
+ else
+ nrpermissions++;
}
}
return p;
@@ -76,7 +79,7 @@ static struct permission *add_permission(const char *name)
/* remove any granting */
void reset_permissions()
{
- int i;
+ unsigned int i;
for (i = 0 ; i < nrpermissions ; i++)
permissions[i].granted = 0;
}
@@ -84,7 +87,7 @@ void reset_permissions()
/* remove any granting */
void crop_permissions(unsigned level)
{
- int i;
+ unsigned int i;
for (i = 0 ; i < nrpermissions ; i++)
if (permissions[i].level < level)
permissions[i].granted = 0;
@@ -95,13 +98,13 @@ void grant_permission_list(const char *list)
{
struct permission *p;
char *iter, c;
- int n;
+ unsigned int n;
static const char separators[] = " \t\n\r,";
iter = strdupa(list);
iter += strspn(iter, separators);
while(*iter) {
- n = strcspn(iter, separators);
+ n = (unsigned)strcspn(iter, separators);
c = iter[n];
iter[n] = 0;
p = add_permission(iter);