[SCM] Samba Shared Repository - branch master updated
Andreas Schneider
asn at samba.org
Wed May 18 21:01:03 UTC 2016
The branch, master has been updated
via 1171fe6 s3-net: Cleanup the code of printing migration
via 858e1ea s3-net: Convert the key_name to UTF8 during migration
from f15b23f packaging: Set default limit for core file size in service files
https://git.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 1171fe6c7e6a43865ca9ec97e0c14d577d599a41
Author: Andreas Schneider <asn at samba.org>
Date: Wed May 18 17:04:38 2016 +0200
s3-net: Cleanup the code of printing migration
Pair-Programmed-With: Guenther Deschner <gd at samba.org>
Signed-off-by: Andreas Schneider <asn at samba.org>
Signed-off-by: Guenther Deschner <gd at samba.org>
Autobuild-User(master): Andreas Schneider <asn at cryptomilk.org>
Autobuild-Date(master): Wed May 18 23:00:35 CEST 2016 on sn-devel-144
commit 858e1eaa64858790888b42d97ae4d6962a09756b
Author: Andreas Schneider <asn at samba.org>
Date: Wed May 18 16:51:45 2016 +0200
s3-net: Convert the key_name to UTF8 during migration
BUG: https://bugzilla.samba.org/show_bug.cgi?id=11922
Pair-Programmed-With: Guenther Deschner <gd at samba.org>
Signed-off-by: Andreas Schneider <asn at samba.org>
Signed-off-by: Guenther Deschner <gd at samba.org>
-----------------------------------------------------------------------
Summary of changes:
source3/utils/net_printing.c | 133 ++++++++++++++++++++++++++++++++++++++-----
1 file changed, 120 insertions(+), 13 deletions(-)
Changeset truncated at 500 lines:
diff --git a/source3/utils/net_printing.c b/source3/utils/net_printing.c
index 6f805eb..8287e0e 100644
--- a/source3/utils/net_printing.c
+++ b/source3/utils/net_printing.c
@@ -33,9 +33,13 @@
#include "printing/nt_printing_migrate.h"
#define FORMS_PREFIX "FORMS/"
+#define FORMS_PREFIX_LEN 6
#define DRIVERS_PREFIX "DRIVERS/"
+#define DRIVERS_PREFIX_LEN 8
#define PRINTERS_PREFIX "PRINTERS/"
+#define PRINTERS_PREFIX_LEN 9
#define SECDESC_PREFIX "SECDESC/"
+#define SECDESC_PREFIX_LEN 8
#define ARG_ENCODING "encoding="
@@ -258,38 +262,91 @@ static int net_printing_dump(struct net_context *c, int argc,
kbuf.dptr;
newkey = tdb_nextkey(tdb, kbuf), free(kbuf.dptr), kbuf=newkey)
{
+ int cmp;
+
dbuf = tdb_fetch(tdb, kbuf);
if (!dbuf.dptr) {
continue;
}
- if (strncmp((const char *)kbuf.dptr, FORMS_PREFIX, strlen(FORMS_PREFIX)) == 0) {
- dump_form(ctx, (const char *)kbuf.dptr+strlen(FORMS_PREFIX), dbuf.dptr, dbuf.dsize);
+ cmp = strncmp((const char *)kbuf.dptr,
+ FORMS_PREFIX,
+ FORMS_PREFIX_LEN);
+ if (cmp == 0) {
+ char *key_name = NULL;
+ size_t converted_size = 0;
+ bool ok;
+
+ ok = pull_ascii_talloc(ctx,
+ &key_name,
+ (const char *) kbuf.dptr + strlen(FORMS_PREFIX),
+ &converted_size);
+ if (!ok) {
+ continue;
+ }
+
+ dump_form(ctx, key_name, dbuf.dptr, dbuf.dsize);
+ TALLOC_FREE(key_name);
SAFE_FREE(dbuf.dptr);
continue;
}
- if (strncmp((const char *)kbuf.dptr, DRIVERS_PREFIX, strlen(DRIVERS_PREFIX)) == 0) {
+ cmp = strncmp((const char *)kbuf.dptr,
+ DRIVERS_PREFIX,
+ DRIVERS_PREFIX_LEN);
+ if (cmp == 0) {
+ char *key_name = NULL;
+ size_t converted_size = 0;
+ bool ok;
+
+ ok = pull_ascii_talloc(ctx,
+ &key_name,
+ (const char *) kbuf.dptr + strlen(DRIVERS_PREFIX),
+ &converted_size);
+ if (!ok) {
+ continue;
+ }
+
dump_driver(ctx,
- (const char *)kbuf.dptr+strlen(DRIVERS_PREFIX),
+ key_name,
dbuf.dptr,
dbuf.dsize,
do_string_conversion);
+ TALLOC_FREE(key_name);
SAFE_FREE(dbuf.dptr);
continue;
}
- if (strncmp((const char *)kbuf.dptr, PRINTERS_PREFIX, strlen(PRINTERS_PREFIX)) == 0) {
+ cmp = strncmp((const char *)kbuf.dptr,
+ PRINTERS_PREFIX,
+ PRINTERS_PREFIX_LEN);
+ if (cmp == 0) {
+ char *key_name = NULL;
+ size_t converted_size = 0;
+ bool ok;
+
+ ok = pull_ascii_talloc(ctx,
+ &key_name,
+ (const char *) kbuf.dptr + strlen(PRINTERS_PREFIX),
+ &converted_size);
+ if (!ok) {
+ continue;
+ }
+
dump_printer(ctx,
- (const char *)kbuf.dptr+strlen(PRINTERS_PREFIX),
+ key_name,
dbuf.dptr,
dbuf.dsize,
do_string_conversion);
+ TALLOC_FREE(key_name);
SAFE_FREE(dbuf.dptr);
continue;
}
- if (strncmp((const char *)kbuf.dptr, SECDESC_PREFIX, strlen(SECDESC_PREFIX)) == 0) {
+ cmp = strncmp((const char *)kbuf.dptr,
+ SECDESC_PREFIX,
+ SECDESC_PREFIX_LEN);
+ if (cmp == 0) {
dump_sd(ctx, (const char *)kbuf.dptr+strlen(SECDESC_PREFIX), dbuf.dptr, dbuf.dsize);
SAFE_FREE(dbuf.dptr);
continue;
@@ -351,39 +408,89 @@ static NTSTATUS printing_migrate_internal(struct net_context *c,
kbuf.dptr;
newkey = tdb_nextkey(tdb, kbuf), free(kbuf.dptr), kbuf = newkey)
{
+ int cmp;
+
dbuf = tdb_fetch(tdb, kbuf);
if (!dbuf.dptr) {
continue;
}
- if (strncmp((const char *) kbuf.dptr, FORMS_PREFIX, strlen(FORMS_PREFIX)) == 0) {
+ cmp = strncmp((const char *) kbuf.dptr,
+ FORMS_PREFIX,
+ FORMS_PREFIX_LEN);
+ if (cmp == 0) {
+ char *key_name = NULL;
+ size_t converted_size = 0;
+ bool ok;
+
+ ok = pull_ascii_talloc(tmp_ctx,
+ &key_name,
+ (const char *) kbuf.dptr + strlen(FORMS_PREFIX),
+ &converted_size);
+ if (!ok) {
+ continue;
+ }
+
printing_tdb_migrate_form(tmp_ctx,
winreg_pipe,
- (const char *) kbuf.dptr + strlen(FORMS_PREFIX),
+ key_name,
dbuf.dptr,
dbuf.dsize);
+ TALLOC_FREE(key_name);
SAFE_FREE(dbuf.dptr);
continue;
}
- if (strncmp((const char *) kbuf.dptr, DRIVERS_PREFIX, strlen(DRIVERS_PREFIX)) == 0) {
+ cmp = strncmp((const char *) kbuf.dptr,
+ DRIVERS_PREFIX,
+ DRIVERS_PREFIX_LEN);
+ if (cmp == 0) {
+ char *key_name = NULL;
+ size_t converted_size = 0;
+ bool ok;
+
+ ok = pull_ascii_talloc(tmp_ctx,
+ &key_name,
+ (const char *) kbuf.dptr + strlen(DRIVERS_PREFIX),
+ &converted_size);
+ if (!ok) {
+ continue;
+ }
+
printing_tdb_migrate_driver(tmp_ctx,
winreg_pipe,
- (const char *) kbuf.dptr + strlen(DRIVERS_PREFIX),
+ key_name,
dbuf.dptr,
dbuf.dsize,
do_string_conversion);
+ TALLOC_FREE(key_name);
SAFE_FREE(dbuf.dptr);
continue;
}
- if (strncmp((const char *) kbuf.dptr, PRINTERS_PREFIX, strlen(PRINTERS_PREFIX)) == 0) {
+ cmp = strncmp((const char *) kbuf.dptr,
+ PRINTERS_PREFIX,
+ PRINTERS_PREFIX_LEN);
+ if (cmp == 0) {
+ char *key_name = NULL;
+ size_t converted_size = 0;
+ bool ok;
+
+ ok = pull_ascii_talloc(tmp_ctx,
+ &key_name,
+ (const char *) kbuf.dptr + strlen(PRINTERS_PREFIX),
+ &converted_size);
+ if (!ok) {
+ continue;
+ }
+
printing_tdb_migrate_printer(tmp_ctx,
winreg_pipe,
- (const char *) kbuf.dptr + strlen(PRINTERS_PREFIX),
+ key_name,
dbuf.dptr,
dbuf.dsize,
do_string_conversion);
+ TALLOC_FREE(key_name);
SAFE_FREE(dbuf.dptr);
continue;
}
--
Samba Shared Repository
More information about the samba-cvs
mailing list