From: Andreas Steffen Date: Thu, 15 Nov 2012 10:48:57 +0000 (+0100) Subject: discovered the use of strndup() X-Git-Tag: 5.0.2dr4~195 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=bacffb890e8b9c28cc5cce1680f557acfdc276c9;p=thirdparty%2Fstrongswan.git discovered the use of strndup() --- diff --git a/src/libimcv/ita/ita_attr_command.c b/src/libimcv/ita/ita_attr_command.c index a1f1dd0cfd..85beb49cb5 100644 --- a/src/libimcv/ita/ita_attr_command.c +++ b/src/libimcv/ita/ita_attr_command.c @@ -96,9 +96,7 @@ METHOD(pa_tnc_attr_t, build, void, METHOD(pa_tnc_attr_t, process, status_t, private_ita_attr_command_t *this, u_int32_t *offset) { - this->command = malloc(this->value.len + 1); - memcpy(this->command, this->value.ptr, this->value.len); - this->command[this->value.len] = '\0'; + this->command = strndup(this->value.ptr, this->value.len); return SUCCESS; } diff --git a/src/libimcv/ita/ita_attr_get_settings.c b/src/libimcv/ita/ita_attr_get_settings.c index c19a8bffcc..24fe6bf802 100644 --- a/src/libimcv/ita/ita_attr_get_settings.c +++ b/src/libimcv/ita/ita_attr_get_settings.c @@ -135,7 +135,6 @@ METHOD(pa_tnc_attr_t, process, status_t, { bio_reader_t *reader; u_int32_t count; - char *name_str; chunk_t name; status_t status = FAILED; @@ -160,10 +159,7 @@ METHOD(pa_tnc_attr_t, process, status_t, } *offset += 2 + name.len; - name_str = malloc(name.len + 1); - memcpy(name_str, name.ptr, name.len); - name_str[name.len] = '\0'; - this->list->insert_last(this->list, name_str); + this->list->insert_last(this->list, strndup(name.ptr, name.len)); } status = SUCCESS; diff --git a/src/libimcv/ita/ita_attr_settings.c b/src/libimcv/ita/ita_attr_settings.c index 9f65768784..e5d8274b15 100644 --- a/src/libimcv/ita/ita_attr_settings.c +++ b/src/libimcv/ita/ita_attr_settings.c @@ -197,9 +197,7 @@ METHOD(pa_tnc_attr_t, process, status_t, *offset += 2 + value.len; entry = malloc_thing(entry_t); - entry->name = malloc(name.len + 1); - memcpy(entry->name, name.ptr, name.len); - entry->name[name.len] = '\0'; + entry->name = strndup(name.ptr, name.len); entry->value = chunk_clone(value); this->list->insert_last(this->list, entry); } diff --git a/src/libimcv/plugins/imv_os/imv_os_database.c b/src/libimcv/plugins/imv_os/imv_os_database.c index 4ca8eb5b8a..10c7b2afa9 100644 --- a/src/libimcv/plugins/imv_os/imv_os_database.c +++ b/src/libimcv/plugins/imv_os/imv_os_database.c @@ -91,9 +91,7 @@ METHOD(imv_os_database_t, check_packages, status_t, while (package_enumerator->enumerate(package_enumerator, &name, &version)) { /* Convert package name chunk to a string */ - package = malloc(name.len + 1); - memcpy(package, name.ptr, name.len); - package[name.len] = '\0'; + package = strndup(name.ptr, name.len); count++; /* Get primary key of package */ @@ -121,9 +119,7 @@ METHOD(imv_os_database_t, check_packages, status_t, e->destroy(e); /* Convert package version chunk to a string */ - release = malloc(version.len + 1); - memcpy(release, version.ptr, version.len); - release[version.len] = '\0'; + release = strndup(version.ptr, version.len); /* Enumerate over all acceptable versions */ e = this->db->query(this->db, diff --git a/src/libpts/tcg/tcg_pts_attr_req_file_meas.c b/src/libpts/tcg/tcg_pts_attr_req_file_meas.c index c28a40f03e..6eafc1177c 100644 --- a/src/libpts/tcg/tcg_pts_attr_req_file_meas.c +++ b/src/libpts/tcg/tcg_pts_attr_req_file_meas.c @@ -169,10 +169,7 @@ METHOD(pa_tnc_attr_t, process, status_t, this->directory_flag = (flags & DIRECTORY_CONTENTS_FLAG) != PTS_REQ_FILE_MEAS_NO_FLAGS; - - this->pathname = malloc(pathname.len + 1); - memcpy(this->pathname, pathname.ptr, pathname.len); - this->pathname[pathname.len] = '\0'; + this->pathname = strndup(pathname.ptr, pathname.len); reader->destroy(reader); return SUCCESS; diff --git a/src/libpts/tcg/tcg_pts_attr_req_file_meta.c b/src/libpts/tcg/tcg_pts_attr_req_file_meta.c index 0ab8bef834..88ee2729db 100644 --- a/src/libpts/tcg/tcg_pts_attr_req_file_meta.c +++ b/src/libpts/tcg/tcg_pts_attr_req_file_meta.c @@ -162,10 +162,7 @@ METHOD(pa_tnc_attr_t, process, status_t, this->directory_flag = (flags & DIRECTORY_CONTENTS_FLAG) != PTS_REQ_FILE_META_NO_FLAGS; - - this->pathname = malloc(pathname.len + 1); - memcpy(this->pathname, pathname.ptr, pathname.len); - this->pathname[pathname.len] = '\0'; + this->pathname = strndup(pathname.ptr, pathname.len); reader->destroy(reader); return SUCCESS; diff --git a/src/libpts/tcg/tcg_pts_attr_unix_file_meta.c b/src/libpts/tcg/tcg_pts_attr_unix_file_meta.c index 9e15f3c170..33e3a5247b 100644 --- a/src/libpts/tcg/tcg_pts_attr_unix_file_meta.c +++ b/src/libpts/tcg/tcg_pts_attr_unix_file_meta.c @@ -252,9 +252,7 @@ METHOD(pa_tnc_attr_t, process, status_t, entry->accessed = accessed; entry->owner = owner; entry->group = group; - entry->filename = malloc(filename.len + 1); - entry->filename[filename.len] = '\0'; - memcpy(entry->filename, filename.ptr, filename.len); + entry->filename = strndup(filename.ptr, filename.len); this->metadata->add(this->metadata, entry); }