Fix snprintf truncated error

Link: https://github.com/SELinuxProject/selinux/pull/106
Signed-off-by: StidOfficial <stidofficiel@gmail.com>
This commit is contained in:
Mr Stid 2018-10-21 20:25:41 +02:00 committed by Nicolas Iooss
parent 95b3552451
commit c6f44ba8da
No known key found for this signature in database
GPG Key ID: C191415F340DAAA0
3 changed files with 10 additions and 10 deletions

View File

@ -536,7 +536,7 @@ static int write_sids_to_cil(FILE *out, const char *const *sid_to_str,
struct strs *strs; struct strs *strs;
char *sid; char *sid;
char *prev; char *prev;
char unknown[17]; char unknown[18];
unsigned i; unsigned i;
int rc; int rc;
@ -550,7 +550,7 @@ static int write_sids_to_cil(FILE *out, const char *const *sid_to_str,
if (i < num_sids) { if (i < num_sids) {
sid = (char *)sid_to_str[i]; sid = (char *)sid_to_str[i];
} else { } else {
snprintf(unknown, 17, "%s%u", "UNKNOWN", i); snprintf(unknown, 18, "%s%u", "UNKNOWN", i);
sid = strdup(unknown); sid = strdup(unknown);
} }
rc = strs_add_at_index(strs, sid, i); rc = strs_add_at_index(strs, sid, i);
@ -2498,7 +2498,7 @@ static int write_sid_context_rules_to_cil(FILE *out, struct policydb *pdb, const
struct ocontext *isid; struct ocontext *isid;
struct strs *strs; struct strs *strs;
char *sid; char *sid;
char unknown[17]; char unknown[18];
char *ctx, *rule; char *ctx, *rule;
unsigned i; unsigned i;
int rc = -1; int rc = -1;
@ -2513,7 +2513,7 @@ static int write_sid_context_rules_to_cil(FILE *out, struct policydb *pdb, const
if (i < num_sids) { if (i < num_sids) {
sid = (char *)sid_to_str[i]; sid = (char *)sid_to_str[i];
} else { } else {
snprintf(unknown, 17, "%s%u", "UNKNOWN", i); snprintf(unknown, 18, "%s%u", "UNKNOWN", i);
sid = unknown; sid = unknown;
} }

View File

@ -434,7 +434,7 @@ static int write_sids_to_conf(FILE *out, const char *const *sid_to_str,
struct ocontext *isid; struct ocontext *isid;
struct strs *strs; struct strs *strs;
char *sid; char *sid;
char unknown[17]; char unknown[18];
unsigned i; unsigned i;
int rc; int rc;
@ -448,7 +448,7 @@ static int write_sids_to_conf(FILE *out, const char *const *sid_to_str,
if (i < num_sids) { if (i < num_sids) {
sid = (char *)sid_to_str[i]; sid = (char *)sid_to_str[i];
} else { } else {
snprintf(unknown, 17, "%s%u", "UNKNOWN", i); snprintf(unknown, 18, "%s%u", "UNKNOWN", i);
sid = strdup(unknown); sid = strdup(unknown);
} }
rc = strs_add_at_index(strs, sid, i); rc = strs_add_at_index(strs, sid, i);
@ -2358,7 +2358,7 @@ static int write_sid_context_rules_to_conf(FILE *out, struct policydb *pdb, cons
struct ocontext *isid; struct ocontext *isid;
struct strs *strs; struct strs *strs;
char *sid; char *sid;
char unknown[17]; char unknown[18];
char *ctx, *rule; char *ctx, *rule;
unsigned i; unsigned i;
int rc; int rc;
@ -2373,7 +2373,7 @@ static int write_sid_context_rules_to_conf(FILE *out, struct policydb *pdb, cons
if (i < num_sids) { if (i < num_sids) {
sid = (char *)sid_to_str[i]; sid = (char *)sid_to_str[i];
} else { } else {
snprintf(unknown, 17, "%s%u", "UNKNOWN", i); snprintf(unknown, 18, "%s%u", "UNKNOWN", i);
sid = unknown; sid = unknown;
} }

View File

@ -2562,7 +2562,7 @@ static int ocontext_isid_to_cil(struct policydb *pdb, const char *const *sid_to_
struct sid_item *head = NULL; struct sid_item *head = NULL;
struct sid_item *item = NULL; struct sid_item *item = NULL;
char *sid; char *sid;
char unknown[17]; char unknown[18];
unsigned i; unsigned i;
for (isid = isids; isid != NULL; isid = isid->next) { for (isid = isids; isid != NULL; isid = isid->next) {
@ -2570,7 +2570,7 @@ static int ocontext_isid_to_cil(struct policydb *pdb, const char *const *sid_to_
if (i < num_sids) { if (i < num_sids) {
sid = (char*)sid_to_string[i]; sid = (char*)sid_to_string[i];
} else { } else {
snprintf(unknown, 17, "%s%u", "UNKNOWN", i); snprintf(unknown, 18, "%s%u", "UNKNOWN", i);
sid = unknown; sid = unknown;
} }
cil_println(0, "(sid %s)", sid); cil_println(0, "(sid %s)", sid);