Skip to content

Commit 1439577

Browse files
committed
libsemanage: silence underflow
Signed-off-by: Christian Göttsche <[email protected]>
1 parent 38b9c9b commit 1439577

File tree

2 files changed

+6
-2
lines changed

2 files changed

+6
-2
lines changed

libsemanage/src/utilities.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,11 @@ char *semanage_str_replace(const char *search, const char *replace,
254254
return strdup(src);
255255

256256
/* Allocate the result string */
257-
newsize = strlen(src) + 1 + count * (rlen - slen);
257+
newsize = strlen(src) + 1;
258+
if (rlen >= slen)
259+
newsize += count * (rlen - slen);
260+
else
261+
newsize -= count * (slen - rlen);
258262
result = malloc(newsize);
259263
if (!result)
260264
return NULL;

libsemanage/tests/test_other.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ void test_debug(void)
116116
CU_ASSERT(semanage_module_info_create(sh, &modinfo) >= 0);
117117

118118
/* test */
119-
CU_ASSERT(semanage_module_info_set_priority(sh, modinfo, -42) < 0);
119+
CU_ASSERT(semanage_module_info_set_priority(sh, modinfo, (uint16_t)-42) < 0);
120120

121121
/* cleanup */
122122
semanage_module_info_destroy(sh, modinfo);

0 commit comments

Comments
 (0)