diff options
| author | Sumit Bose <sbose@redhat.com> | 2016-02-17 13:04:03 +0100 |
|---|---|---|
| committer | Jakub Hrozek <jhrozek@redhat.com> | 2016-04-13 10:43:18 +0200 |
| commit | 28f336bdb32db0b89cb98174a3f8e308e4e928db (patch) | |
| tree | 1cf42461c6c268b7665ead6dabdc598de9d7750a /src/util | |
| parent | 7cf0f78d832c7a09b59ee9f91cedc427c0253cd4 (diff) | |
| download | sssd-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.c | 21 | ||||
| -rw-r--r-- | src/util/util.h | 4 |
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; |
