1.1 --- a/librazor/razor.c Fri Jan 27 07:55:30 2012 +0000
1.2 +++ b/librazor/razor.c Fri Jan 27 08:12:19 2012 +0000
1.3 @@ -237,6 +237,7 @@
1.4 }
1.5
1.6 set->lock_fd = -1;
1.7 + set->ref_count = 1;
1.8 if (razor_set_bind_sections(set, atomic, filename)) {
1.9 free(set);
1.10 return NULL;
2.1 --- a/librazor/root.c Fri Jan 27 07:55:30 2012 +0000
2.2 +++ b/librazor/root.c Fri Jan 27 08:12:19 2012 +0000
2.3 @@ -87,7 +87,7 @@
2.4 struct stat buf;
2.5 struct razor_set *set;
2.6 struct razor_atomic *atomic;
2.7 - char *path;
2.8 + char *file, *path;
2.9
2.10 assert (root != NULL);
2.11
2.12 @@ -109,22 +109,23 @@
2.13 return -1;
2.14 }
2.15
2.16 - path = razor_concat(root, razor_root_path, "/", system_repo_filename,
2.17 - NULL);
2.18 + file = razor_concat(razor_root_path, "/", system_repo_filename, NULL);
2.19 + path = razor_concat(root, file, NULL);
2.20 retval = !stat(path, &buf);
2.21 - free(path);
2.22 if (retval) {
2.23 fprintf(stderr,
2.24 "a razor install root is already initialized\n");
2.25 + free(path);
2.26 + free(file);
2.27 return retval;
2.28 }
2.29
2.30 atomic = razor_atomic_open("Create initial package set");
2.31 - path = razor_concat(razor_root_path, "/", system_repo_filename, NULL);
2.32 - razor_atomic_make_dirs(atomic, root, path);
2.33 + razor_atomic_make_dirs(atomic, root, file);
2.34 set = razor_set_create();
2.35 razor_set_write(set, atomic, path, RAZOR_SECTION_ALL);
2.36 free(path);
2.37 + free(file);
2.38 retval = razor_atomic_commit(atomic);
2.39 if (retval)
2.40 fprintf(stderr, "could not write initial package set\n");
3.1 --- a/librazor/util.c Fri Jan 27 07:55:30 2012 +0000
3.2 +++ b/librazor/util.c Fri Jan 27 08:12:19 2012 +0000
3.3 @@ -120,9 +120,11 @@
3.4 {
3.5 char buffer[size];
3.6
3.7 - memcpy(buffer, p1, size);
3.8 - memcpy(p1, p2, size);
3.9 - memcpy(p2, buffer, size);
3.10 + if (p1 != p2) {
3.11 + memcpy(buffer, p1, size);
3.12 + memcpy(p1, p2, size);
3.13 + memcpy(p2, buffer, size);
3.14 + }
3.15 }
3.16
3.17 static void
3.18 @@ -226,7 +228,7 @@
3.19 void environment_set(struct environment *env)
3.20 {
3.21 int i, count;
3.22 - char *s;
3.23 + char *s, *t;
3.24 uint32_t *r;
3.25
3.26 if (!env->is_set) {
3.27 @@ -234,7 +236,14 @@
3.28 r = (uint32_t *)env->vars.data;
3.29 for (i = 0; i < count; i++) {
3.30 s = env->string_pool.data + *r++;
3.31 +#ifdef WIN32
3.32 putenv(s);
3.33 +#else
3.34 + t = strchr(s, '=');
3.35 + *t = '\0';
3.36 + setenv(s, t + 1, 1);
3.37 + *t = '=';
3.38 +#endif
3.39 }
3.40
3.41 env->is_set = 1;
3.42 @@ -252,11 +261,19 @@
3.43 r = (uint32_t *)env->vars.data;
3.44 for (i = 0; i < count; i++) {
3.45 s = env->string_pool.data + *r++;
3.46 - t = strchr(s, '=') + 1;
3.47 + t = strchr(s, '=');
3.48 +#ifdef WIN32
3.49 + t++;
3.50 c = *t;
3.51 *t = '\0';
3.52 putenv(s);
3.53 *t = c;
3.54 +#else
3.55 + c = *t;
3.56 + *t = '\0';
3.57 + unsetenv(s);
3.58 + *t = c;
3.59 +#endif
3.60 }
3.61
3.62 env->is_set = 0;
4.1 --- a/src/test-driver.c Fri Jan 27 07:55:30 2012 +0000
4.2 +++ b/src/test-driver.c Fri Jan 27 08:12:19 2012 +0000
4.3 @@ -141,15 +141,15 @@
4.4 end_test(struct test_context *ctx)
4.5 {
4.6 if (ctx->system_set) {
4.7 - razor_set_destroy(ctx->system_set);
4.8 + razor_set_unref(ctx->system_set);
4.9 ctx->system_set = NULL;
4.10 }
4.11 if (ctx->repo_set) {
4.12 - razor_set_destroy(ctx->repo_set);
4.13 + razor_set_unref(ctx->repo_set);
4.14 ctx->repo_set = NULL;
4.15 }
4.16 if (ctx->result_set) {
4.17 - razor_set_destroy(ctx->result_set);
4.18 + razor_set_unref(ctx->result_set);
4.19 ctx->result_set = NULL;
4.20 }
4.21 if (ctx->trans) {