# HG changeset patch # User J. Ali Harlow # Date 1327651939 0 # Node ID 5ab137def3d1390152ce0a6b92e3b1070b99cd74 # Parent f960eb19dca26e931414c431b875e9189158add4 Fix bugs causing arguments to not be passed to lua scripts diff -r f960eb19dca2 -r 5ab137def3d1 librazor/razor.c --- a/librazor/razor.c Fri Jan 27 07:55:30 2012 +0000 +++ b/librazor/razor.c Fri Jan 27 08:12:19 2012 +0000 @@ -237,6 +237,7 @@ } set->lock_fd = -1; + set->ref_count = 1; if (razor_set_bind_sections(set, atomic, filename)) { free(set); return NULL; diff -r f960eb19dca2 -r 5ab137def3d1 librazor/root.c --- a/librazor/root.c Fri Jan 27 07:55:30 2012 +0000 +++ b/librazor/root.c Fri Jan 27 08:12:19 2012 +0000 @@ -87,7 +87,7 @@ struct stat buf; struct razor_set *set; struct razor_atomic *atomic; - char *path; + char *file, *path; assert (root != NULL); @@ -109,22 +109,23 @@ return -1; } - path = razor_concat(root, razor_root_path, "/", system_repo_filename, - NULL); + file = razor_concat(razor_root_path, "/", system_repo_filename, NULL); + path = razor_concat(root, file, NULL); retval = !stat(path, &buf); - free(path); if (retval) { fprintf(stderr, "a razor install root is already initialized\n"); + free(path); + free(file); return retval; } atomic = razor_atomic_open("Create initial package set"); - path = razor_concat(razor_root_path, "/", system_repo_filename, NULL); - razor_atomic_make_dirs(atomic, root, path); + razor_atomic_make_dirs(atomic, root, file); set = razor_set_create(); razor_set_write(set, atomic, path, RAZOR_SECTION_ALL); free(path); + free(file); retval = razor_atomic_commit(atomic); if (retval) fprintf(stderr, "could not write initial package set\n"); diff -r f960eb19dca2 -r 5ab137def3d1 librazor/util.c --- a/librazor/util.c Fri Jan 27 07:55:30 2012 +0000 +++ b/librazor/util.c Fri Jan 27 08:12:19 2012 +0000 @@ -120,9 +120,11 @@ { char buffer[size]; - memcpy(buffer, p1, size); - memcpy(p1, p2, size); - memcpy(p2, buffer, size); + if (p1 != p2) { + memcpy(buffer, p1, size); + memcpy(p1, p2, size); + memcpy(p2, buffer, size); + } } static void @@ -226,7 +228,7 @@ void environment_set(struct environment *env) { int i, count; - char *s; + char *s, *t; uint32_t *r; if (!env->is_set) { @@ -234,7 +236,14 @@ r = (uint32_t *)env->vars.data; for (i = 0; i < count; i++) { s = env->string_pool.data + *r++; +#ifdef WIN32 putenv(s); +#else + t = strchr(s, '='); + *t = '\0'; + setenv(s, t + 1, 1); + *t = '='; +#endif } env->is_set = 1; @@ -252,11 +261,19 @@ r = (uint32_t *)env->vars.data; for (i = 0; i < count; i++) { s = env->string_pool.data + *r++; - t = strchr(s, '=') + 1; + t = strchr(s, '='); +#ifdef WIN32 + t++; c = *t; *t = '\0'; putenv(s); *t = c; +#else + c = *t; + *t = '\0'; + unsetenv(s); + *t = c; +#endif } env->is_set = 0; diff -r f960eb19dca2 -r 5ab137def3d1 src/test-driver.c --- a/src/test-driver.c Fri Jan 27 07:55:30 2012 +0000 +++ b/src/test-driver.c Fri Jan 27 08:12:19 2012 +0000 @@ -141,15 +141,15 @@ end_test(struct test_context *ctx) { if (ctx->system_set) { - razor_set_destroy(ctx->system_set); + razor_set_unref(ctx->system_set); ctx->system_set = NULL; } if (ctx->repo_set) { - razor_set_destroy(ctx->repo_set); + razor_set_unref(ctx->repo_set); ctx->repo_set = NULL; } if (ctx->result_set) { - razor_set_destroy(ctx->result_set); + razor_set_unref(ctx->result_set); ctx->result_set = NULL; } if (ctx->trans) {