e220fa3cd8
- update bad bit shift patch with one that patches getcifsacl.c too - remove some dead code from getcifsacl.c, asn1.c, and data_blob.c - fix bad handling of allocated memory in del_mtab in mount.cifs.c Signed-off-by: Jeff Layton <jlayton@redhat.com>
277 lines
6.6 KiB
Diff
277 lines
6.6 KiB
Diff
From 9f1c0722a3e20047bcffe3a43f229e891da8c01b Mon Sep 17 00:00:00 2001
|
|
From: Jeff Layton <jlayton@samba.org>
|
|
Date: Wed, 9 Oct 2013 09:05:22 -0400
|
|
Subject: [PATCH] data_blob: clean out unused functions
|
|
|
|
Cut another 6k or so out of the cifs.upcall binary.
|
|
|
|
Signed-off-by: Jeff Layton <jlayton@samba.org>
|
|
---
|
|
data_blob.c | 168 ------------------------------------------------------------
|
|
data_blob.h | 62 ----------------------
|
|
2 files changed, 230 deletions(-)
|
|
|
|
diff --git a/data_blob.c b/data_blob.c
|
|
index 16c78ce..834d810 100644
|
|
--- a/data_blob.c
|
|
+++ b/data_blob.c
|
|
@@ -71,18 +71,6 @@ _PUBLIC_ DATA_BLOB data_blob_talloc_named(TALLOC_CTX *mem_ctx, const void *p, si
|
|
}
|
|
|
|
/**
|
|
- construct a zero data blob, using supplied TALLOC_CTX.
|
|
- use this sparingly as it initialises data - better to initialise
|
|
- yourself if you want specific data in the blob
|
|
-**/
|
|
-_PUBLIC_ DATA_BLOB data_blob_talloc_zero(TALLOC_CTX *mem_ctx, size_t length)
|
|
-{
|
|
- DATA_BLOB blob = data_blob_talloc(mem_ctx, NULL, length);
|
|
- data_blob_clear(&blob);
|
|
- return blob;
|
|
-}
|
|
-
|
|
-/**
|
|
free a data blob
|
|
**/
|
|
_PUBLIC_ void data_blob_free(DATA_BLOB *d)
|
|
@@ -94,159 +82,3 @@ _PUBLIC_ void data_blob_free(DATA_BLOB *d)
|
|
}
|
|
}
|
|
|
|
-/**
|
|
-clear a DATA_BLOB's contents
|
|
-**/
|
|
-_PUBLIC_ void data_blob_clear(DATA_BLOB *d)
|
|
-{
|
|
- if (d->data) {
|
|
- memset(d->data, 0, d->length);
|
|
- }
|
|
-}
|
|
-
|
|
-/**
|
|
-free a data blob and clear its contents
|
|
-**/
|
|
-_PUBLIC_ void data_blob_clear_free(DATA_BLOB *d)
|
|
-{
|
|
- data_blob_clear(d);
|
|
- data_blob_free(d);
|
|
-}
|
|
-
|
|
-
|
|
-/**
|
|
-check if two data blobs are equal
|
|
-**/
|
|
-_PUBLIC_ int data_blob_cmp(const DATA_BLOB *d1, const DATA_BLOB *d2)
|
|
-{
|
|
- int ret;
|
|
- if (d1->data == NULL && d2->data != NULL) {
|
|
- return -1;
|
|
- }
|
|
- if (d1->data != NULL && d2->data == NULL) {
|
|
- return 1;
|
|
- }
|
|
- if (d1->data == d2->data) {
|
|
- return d1->length - d2->length;
|
|
- }
|
|
- ret = memcmp(d1->data, d2->data, MIN(d1->length, d2->length));
|
|
- if (ret == 0) {
|
|
- return d1->length - d2->length;
|
|
- }
|
|
- return ret;
|
|
-}
|
|
-
|
|
-/**
|
|
-print the data_blob as hex string
|
|
-**/
|
|
-_PUBLIC_ char *data_blob_hex_string_lower(TALLOC_CTX *mem_ctx, const DATA_BLOB *blob)
|
|
-{
|
|
- unsigned int i;
|
|
- char *hex_string;
|
|
-
|
|
- hex_string = talloc_array(mem_ctx, char, (blob->length*2)+1);
|
|
- if (!hex_string) {
|
|
- return NULL;
|
|
- }
|
|
-
|
|
- /* this must be lowercase or w2k8 cannot join a samba domain,
|
|
- as this routine is used to encode extended DNs and windows
|
|
- only accepts lowercase hexadecimal numbers */
|
|
- for (i = 0; i < blob->length; i++)
|
|
- slprintf(&hex_string[i*2], 3, "%02x", blob->data[i]);
|
|
-
|
|
- hex_string[(blob->length*2)] = '\0';
|
|
- return hex_string;
|
|
-}
|
|
-
|
|
-_PUBLIC_ char *data_blob_hex_string_upper(TALLOC_CTX *mem_ctx, const DATA_BLOB *blob)
|
|
-{
|
|
- unsigned int i;
|
|
- char *hex_string;
|
|
-
|
|
- hex_string = talloc_array(mem_ctx, char, (blob->length*2)+1);
|
|
- if (!hex_string) {
|
|
- return NULL;
|
|
- }
|
|
-
|
|
- for (i = 0; i < blob->length; i++)
|
|
- slprintf(&hex_string[i*2], 3, "%02X", blob->data[i]);
|
|
-
|
|
- hex_string[(blob->length*2)] = '\0';
|
|
- return hex_string;
|
|
-}
|
|
-
|
|
-/**
|
|
- useful for constructing data blobs in test suites, while
|
|
- avoiding const warnings
|
|
-**/
|
|
-_PUBLIC_ DATA_BLOB data_blob_string_const(const char *str)
|
|
-{
|
|
- DATA_BLOB blob;
|
|
- blob.data = discard_const_p(uint8_t, str);
|
|
- blob.length = str ? strlen(str) : 0;
|
|
- return blob;
|
|
-}
|
|
-
|
|
-/**
|
|
- useful for constructing data blobs in test suites, while
|
|
- avoiding const warnings
|
|
-**/
|
|
-_PUBLIC_ DATA_BLOB data_blob_string_const_null(const char *str)
|
|
-{
|
|
- DATA_BLOB blob;
|
|
- blob.data = discard_const_p(uint8_t, str);
|
|
- blob.length = str ? strlen(str)+1 : 0;
|
|
- return blob;
|
|
-}
|
|
-
|
|
-/**
|
|
- * Create a new data blob from const data
|
|
- */
|
|
-
|
|
-_PUBLIC_ DATA_BLOB data_blob_const(const void *p, size_t length)
|
|
-{
|
|
- DATA_BLOB blob;
|
|
- blob.data = discard_const_p(uint8_t, p);
|
|
- blob.length = length;
|
|
- return blob;
|
|
-}
|
|
-
|
|
-
|
|
-/**
|
|
- realloc a data_blob
|
|
-**/
|
|
-_PUBLIC_ bool data_blob_realloc(TALLOC_CTX *mem_ctx, DATA_BLOB *blob, size_t length)
|
|
-{
|
|
- blob->data = talloc_realloc(mem_ctx, blob->data, uint8_t, length);
|
|
- if (blob->data == NULL)
|
|
- return false;
|
|
- blob->length = length;
|
|
- return true;
|
|
-}
|
|
-
|
|
-
|
|
-/**
|
|
- append some data to a data blob
|
|
-**/
|
|
-_PUBLIC_ bool data_blob_append(TALLOC_CTX *mem_ctx, DATA_BLOB *blob,
|
|
- const void *p, size_t length)
|
|
-{
|
|
- size_t old_len = blob->length;
|
|
- size_t new_len = old_len + length;
|
|
- if (new_len < length || new_len < old_len) {
|
|
- return false;
|
|
- }
|
|
-
|
|
- if ((const uint8_t *)p + length < (const uint8_t *)p) {
|
|
- return false;
|
|
- }
|
|
-
|
|
- if (!data_blob_realloc(mem_ctx, blob, new_len)) {
|
|
- return false;
|
|
- }
|
|
-
|
|
- memcpy(blob->data + old_len, p, length);
|
|
- return true;
|
|
-}
|
|
-
|
|
diff --git a/data_blob.h b/data_blob.h
|
|
index 83e6cd5..ccdf30d 100644
|
|
--- a/data_blob.h
|
|
+++ b/data_blob.h
|
|
@@ -61,72 +61,10 @@ _PUBLIC_ DATA_BLOB data_blob_named(const void *p, size_t length, const char *nam
|
|
_PUBLIC_ DATA_BLOB data_blob_talloc_named(TALLOC_CTX *mem_ctx, const void *p, size_t length, const char *name);
|
|
|
|
/**
|
|
- construct a zero data blob, using supplied TALLOC_CTX.
|
|
- use this sparingly as it initialises data - better to initialise
|
|
- yourself if you want specific data in the blob
|
|
-**/
|
|
-_PUBLIC_ DATA_BLOB data_blob_talloc_zero(TALLOC_CTX *mem_ctx, size_t length);
|
|
-
|
|
-/**
|
|
free a data blob
|
|
**/
|
|
_PUBLIC_ void data_blob_free(DATA_BLOB *d);
|
|
|
|
-/**
|
|
-clear a DATA_BLOB's contents
|
|
-**/
|
|
-_PUBLIC_ void data_blob_clear(DATA_BLOB *d);
|
|
-
|
|
-/**
|
|
-free a data blob and clear its contents
|
|
-**/
|
|
-_PUBLIC_ void data_blob_clear_free(DATA_BLOB *d);
|
|
-
|
|
-/**
|
|
-check if two data blobs are equal
|
|
-**/
|
|
-_PUBLIC_ int data_blob_cmp(const DATA_BLOB *d1, const DATA_BLOB *d2);
|
|
-
|
|
-/**
|
|
-print the data_blob as hex string
|
|
-**/
|
|
-_PUBLIC_ char *data_blob_hex_string_upper(TALLOC_CTX *mem_ctx, const DATA_BLOB *blob);
|
|
-
|
|
-/**
|
|
-print the data_blob as hex string
|
|
-**/
|
|
-_PUBLIC_ char *data_blob_hex_string_lower(TALLOC_CTX *mem_ctx, const DATA_BLOB *blob);
|
|
-
|
|
-/**
|
|
- useful for constructing data blobs in test suites, while
|
|
- avoiding const warnings
|
|
-**/
|
|
-_PUBLIC_ DATA_BLOB data_blob_string_const(const char *str);
|
|
-
|
|
-/**
|
|
- useful for constructing data blobs in test suites, while
|
|
- avoiding const warnings
|
|
-
|
|
- includes the terminating null character (as opposed to data_blo_string_const)
|
|
-**/
|
|
-_PUBLIC_ DATA_BLOB data_blob_string_const_null(const char *str);
|
|
-
|
|
-/**
|
|
- * Create a new data blob from const data
|
|
- */
|
|
-_PUBLIC_ DATA_BLOB data_blob_const(const void *p, size_t length);
|
|
-
|
|
-/**
|
|
- realloc a data_blob
|
|
-**/
|
|
-_PUBLIC_ bool data_blob_realloc(TALLOC_CTX *mem_ctx, DATA_BLOB *blob, size_t length);
|
|
-
|
|
-/**
|
|
- append some data to a data blob
|
|
-**/
|
|
-_PUBLIC_ bool data_blob_append(TALLOC_CTX *mem_ctx, DATA_BLOB *blob,
|
|
- const void *p, size_t length);
|
|
-
|
|
extern const DATA_BLOB data_blob_null;
|
|
|
|
#endif /* _SAMBA_DATABLOB_H_ */
|
|
--
|
|
1.8.3.1
|
|
|