Check-in [0fb3b3b582]
Overview
Comment:Updated to use Tcl allocation routines for memory allocating/releasing
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 0fb3b3b582bce90b77b493576b32e7fff4b1c02a
User & Date: rkeene on 2016-11-10 21:14:04
Other Links: manifest | tags
Context
2016-12-09
04:18
Updated to support partial decryption of data check-in: a400fc4409 user: rkeene tags: trunk
2016-11-10
21:14
Updated to use Tcl allocation routines for memory allocating/releasing check-in: 0fb3b3b582 user: rkeene tags: trunk
20:40
Updated to enable use of stubs with dir2c C-VFS builder check-in: fa78eca529 user: rkeene tags: trunk
Changes

Modified kitsh/buildsrc/kitsh-0.0/cvfs_data.c from [010e908a77] to [184ea3e79a].

270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
		Tcl_SetResult(interp, "Failed to allocate new object", TCL_STATIC);

		return(TCL_ERROR);
	}

	Tcl_IncrRefCount(ret_list);

	children = malloc(sizeof(*children) * num_children);

	num_children = cmd_getChildren(file, children, num_children);

	for (idx = 0; idx < num_children; idx++) {
		finfo = cmd_getData(NULL, children[idx]);

		if (finfo == NULL || finfo->name == NULL) {







|







270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
		Tcl_SetResult(interp, "Failed to allocate new object", TCL_STATIC);

		return(TCL_ERROR);
	}

	Tcl_IncrRefCount(ret_list);

	children = (void *) Tcl_Alloc(sizeof(*children) * num_children);

	num_children = cmd_getChildren(file, children, num_children);

	for (idx = 0; idx < num_children; idx++) {
		finfo = cmd_getData(NULL, children[idx]);

		if (finfo == NULL || finfo->name == NULL) {
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
		Tcl_IncrRefCount(ret_curr_obj);

		Tcl_ListObjAppendList(interp, ret_list, ret_curr_obj);

		Tcl_DecrRefCount(ret_curr_obj);
	}

	free(children);

	Tcl_SetObjResult(interp, ret_list);

	Tcl_DecrRefCount(ret_list);

	return(TCL_OK);
}







|







292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
		Tcl_IncrRefCount(ret_curr_obj);

		Tcl_ListObjAppendList(interp, ret_list, ret_curr_obj);

		Tcl_DecrRefCount(ret_curr_obj);
	}

	Tcl_Free((void *) children);

	Tcl_SetObjResult(interp, ret_list);

	Tcl_DecrRefCount(ret_list);

	return(TCL_OK);
}

Modified kitsh/buildsrc/kitsh-0.0/dir2c.tcl from [dff14cac78] to [74a40bc096].

233
234
235
236
237
238
239

240
241
242
243
244
245
246
#  endif
#  ifdef HAVE_STRING_H
#    include <string.h>
#  endif
#  ifdef HAVE_STDLIB_H
#    include <stdlib.h>
#  endif


#  ifndef LOADED_CVFS_COMMON
#    define LOADED_CVFS_COMMON 1

typedef enum {
	CVFS_FILETYPE_FILE            = 0,
	CVFS_FILETYPE_DIR             = 1,







>







233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
#  endif
#  ifdef HAVE_STRING_H
#    include <string.h>
#  endif
#  ifdef HAVE_STDLIB_H
#    include <stdlib.h>
#  endif
#  include <tcl.h>

#  ifndef LOADED_CVFS_COMMON
#    define LOADED_CVFS_COMMON 1

typedef enum {
	CVFS_FILETYPE_FILE            = 0,
	CVFS_FILETYPE_DIR             = 1,
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538

if {$obsfucate} {
	puts "static void ${code_tag}_decryptFile(const char *path, struct cvfs_data *finfo) {"
	puts "\tstatic struct cvfs_key key = { [string map [list "\n" " "] [encrypt_key_export $obsfucation_key "c"]] };"
	puts "\tunsigned char *new_data, *old_data;"
	puts "\tint decrypt_ret, free_old_data;"
	puts ""
	puts "\tnew_data = malloc(finfo->size);"
	puts "\tdecrypt_ret = cvfs_decrypt(new_data, finfo->data, finfo->size, &key);"
	puts "\tif (decrypt_ret != 0) {"
	puts "\t\tfree(new_data);"
	puts ""
	puts "\t\treturn;"
	puts "\t}"
	puts ""
	puts "\tfree_old_data = finfo->free;"
	puts "\told_data = (void *) finfo->data;"
	puts ""
	puts "\tfinfo->data = new_data;"
	puts "\tfinfo->free = 1;"
	puts "\tfinfo->type = CVFS_FILETYPE_FILE;"
	puts ""
	puts "\tif (free_old_data) {"
	puts "\t\tfree(old_data);"
	puts "\t}"
	puts "\treturn;"
	puts "}"
	puts ""
}

puts "#  ifdef CVFS_MAKE_LOADABLE"







|


|












|







509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539

if {$obsfucate} {
	puts "static void ${code_tag}_decryptFile(const char *path, struct cvfs_data *finfo) {"
	puts "\tstatic struct cvfs_key key = { [string map [list "\n" " "] [encrypt_key_export $obsfucation_key "c"]] };"
	puts "\tunsigned char *new_data, *old_data;"
	puts "\tint decrypt_ret, free_old_data;"
	puts ""
	puts "\tnew_data = (void *) Tcl_Alloc(finfo->size);"
	puts "\tdecrypt_ret = cvfs_decrypt(new_data, finfo->data, finfo->size, &key);"
	puts "\tif (decrypt_ret != 0) {"
	puts "\t\tTcl_Free((void *) new_data);"
	puts ""
	puts "\t\treturn;"
	puts "\t}"
	puts ""
	puts "\tfree_old_data = finfo->free;"
	puts "\told_data = (void *) finfo->data;"
	puts ""
	puts "\tfinfo->data = new_data;"
	puts "\tfinfo->free = 1;"
	puts "\tfinfo->type = CVFS_FILETYPE_FILE;"
	puts ""
	puts "\tif (free_old_data) {"
	puts "\t\tTcl_Free((void *) old_data);"
	puts "\t}"
	puts "\treturn;"
	puts "}"
	puts ""
}

puts "#  ifdef CVFS_MAKE_LOADABLE"