summaryrefslogtreecommitdiffstats
path: root/src/util
diff options
context:
space:
mode:
authorSumit Bose <sbose@redhat.com>2016-02-17 13:04:03 +0100
committerJakub Hrozek <jhrozek@redhat.com>2016-04-13 10:43:18 +0200
commit28f336bdb32db0b89cb98174a3f8e308e4e928db (patch)
tree1cf42461c6c268b7665ead6dabdc598de9d7750a /src/util
parent7cf0f78d832c7a09b59ee9f91cedc427c0253cd4 (diff)
downloadsssd-28f336bdb32db0b89cb98174a3f8e308e4e928db.tar.gz
sssd-28f336bdb32db0b89cb98174a3f8e308e4e928db.tar.xz
sssd-28f336bdb32db0b89cb98174a3f8e308e4e928db.zip
util: make concatenate_string_array() reusable
Reviewed-by: Pavel Březina <pbrezina@redhat.com>
Diffstat (limited to 'src/util')
-rw-r--r--src/util/string_utils.c21
-rw-r--r--src/util/util.h4
2 files changed, 25 insertions, 0 deletions
diff --git a/src/util/string_utils.c b/src/util/string_utils.c
index b6037621e..5e43bbef3 100644
--- a/src/util/string_utils.c
+++ b/src/util/string_utils.c
@@ -125,3 +125,24 @@ const char *get_last_x_chars(const char *str, size_t x)
return (str + len - x);
}
+
+char **concatenate_string_array(TALLOC_CTX *mem_ctx,
+ char **arr1, size_t len1,
+ char **arr2, size_t len2)
+{
+ size_t i, j;
+ size_t new_size = len1 + len2;
+ char ** string_array = talloc_realloc(mem_ctx, arr1, char *, new_size + 1);
+ if (string_array == NULL) {
+ return NULL;
+ }
+
+ for (i=len1, j=0; i < new_size; ++i,++j) {
+ string_array[i] = talloc_steal(string_array,
+ arr2[j]);
+ }
+
+ string_array[i] = NULL;
+
+ return string_array;
+}
diff --git a/src/util/util.h b/src/util/util.h
index 05ee87584..11054c106 100644
--- a/src/util/util.h
+++ b/src/util/util.h
@@ -543,6 +543,10 @@ errno_t guid_blob_to_string_buf(const uint8_t *blob, char *str_buf,
const char *get_last_x_chars(const char *str, size_t x);
+char **concatenate_string_array(TALLOC_CTX *mem_ctx,
+ char **arr1, size_t len1,
+ char **arr2, size_t len2);
+
/* from become_user.c */
errno_t become_user(uid_t uid, gid_t gid);
struct sss_creds;