Index: uspace/lib/libc/generic/loader.c
===================================================================
--- uspace/lib/libc/generic/loader.c	(revision 3636964a0c670d2ee2523425ef20a055d82a337d)
+++ uspace/lib/libc/generic/loader.c	(revision 9eb362323466c189d4803ce6617716d2403a7a32)
@@ -55,5 +55,5 @@
 {
 	return __SYSCALL2(SYS_PROGRAM_SPAWN_LOADER,
-	    (sysarg_t) name, strlen(name));
+	    (sysarg_t) name, str_size(name));
 }
 
@@ -169,5 +169,5 @@
 	buffer_size = 0;
 	while (*ap != NULL) {
-		buffer_size += strlen(*ap) + 1;
+		buffer_size += str_size(*ap) + 1;
 		++ap;
 	}
@@ -179,7 +179,8 @@
 	ap = argv;
 	dp = arg_buf;
+
 	while (*ap != NULL) {
-		strcpy(dp, *ap);
-		dp += strlen(*ap) + 1;
+		str_ncpy(dp, *ap, buffer_size - (dp - arg_buf));
+		dp += str_size(*ap) + 1;
 
 		++ap;
Index: uspace/lib/libc/generic/sysinfo.c
===================================================================
--- uspace/lib/libc/generic/sysinfo.c	(revision 3636964a0c670d2ee2523425ef20a055d82a337d)
+++ uspace/lib/libc/generic/sysinfo.c	(revision 9eb362323466c189d4803ce6617716d2403a7a32)
@@ -39,5 +39,6 @@
 sysarg_t sysinfo_value(char *name)
 {
-	return __SYSCALL2(SYS_SYSINFO_VALUE, (sysarg_t ) name, (sysarg_t) strlen(name));
+	return __SYSCALL2(SYS_SYSINFO_VALUE, (sysarg_t ) name,
+	    (sysarg_t) str_size(name));
 }
 
Index: uspace/lib/libc/generic/task.c
===================================================================
--- uspace/lib/libc/generic/task.c	(revision 3636964a0c670d2ee2523425ef20a055d82a337d)
+++ uspace/lib/libc/generic/task.c	(revision 9eb362323466c189d4803ce6617716d2403a7a32)
@@ -58,5 +58,5 @@
 int task_set_name(const char *name)
 {
-	return __SYSCALL2(SYS_TASK_SET_NAME, (sysarg_t) name, strlen(name));
+	return __SYSCALL2(SYS_TASK_SET_NAME, (sysarg_t) name, str_size(name));
 }
 
Index: uspace/lib/libc/generic/thread.c
===================================================================
--- uspace/lib/libc/generic/thread.c	(revision 3636964a0c670d2ee2523425ef20a055d82a337d)
+++ uspace/lib/libc/generic/thread.c	(revision 9eb362323466c189d4803ce6617716d2403a7a32)
@@ -110,5 +110,5 @@
 	
 	rc = __SYSCALL4(SYS_THREAD_CREATE, (sysarg_t) uarg, (sysarg_t) name,
-	    (sysarg_t) strlen(name), (sysarg_t) tid);
+	    (sysarg_t) str_size(name), (sysarg_t) tid);
 	
 	if (rc) {
Index: uspace/lib/libc/generic/vfs/vfs.c
===================================================================
--- uspace/lib/libc/generic/vfs/vfs.c	(revision 3636964a0c670d2ee2523425ef20a055d82a337d)
+++ uspace/lib/libc/generic/vfs/vfs.c	(revision 9eb362323466c189d4803ce6617716d2403a7a32)
@@ -58,5 +58,5 @@
 DIR *cwd_dir = NULL;
 char *cwd_path = NULL;
-size_t cwd_len = 0;
+size_t cwd_size = 0;
 
 char *absolutize(const char *path, size_t *retlen)
@@ -66,5 +66,5 @@
 
 	futex_down(&cwd_futex);
-	size_t len = strlen(path);
+	size_t size = str_size(path);
 	if (*path != '/') {
 		if (!cwd_path) {
@@ -72,14 +72,14 @@
 			return NULL;
 		}
-		ncwd_path_nc = malloc(cwd_len + 1 + len + 1);
+		ncwd_path_nc = malloc(cwd_size + 1 + size + 1);
 		if (!ncwd_path_nc) {
 			futex_up(&cwd_futex);
 			return NULL;
 		}
-		strcpy(ncwd_path_nc, cwd_path);
-		ncwd_path_nc[cwd_len] = '/';
-		ncwd_path_nc[cwd_len + 1] = '\0';
+		str_ncpy(ncwd_path_nc, cwd_path, cwd_size + 1 + size + 1);
+		ncwd_path_nc[cwd_size] = '/';
+		ncwd_path_nc[cwd_size + 1] = '\0';
 	} else {
-		ncwd_path_nc = malloc(len + 1);
+		ncwd_path_nc = malloc(size + 1);
 		if (!ncwd_path_nc) {
 			futex_up(&cwd_futex);
@@ -133,5 +133,5 @@
 	    &answer);
 	
-	ipcarg_t retval = ipc_data_write_start(phone, name, strlen(name) + 1); 
+	ipcarg_t retval = ipc_data_write_start(phone, name, str_size(name) + 1);
 	
 	if (retval != EOK) {
@@ -167,6 +167,6 @@
 		return res;
 	
-	size_t mpa_len;
-	char *mpa = absolutize(mp, &mpa_len);
+	size_t mpa_size;
+	char *mpa = absolutize(mp, &mpa_size);
 	if (!mpa)
 		return ENOMEM;
@@ -177,5 +177,5 @@
 	
 	req = async_send_2(vfs_phone, VFS_MOUNT, dev_handle, flags, NULL);
-	rc = ipc_data_write_start(vfs_phone, (void *) mpa, mpa_len);
+	rc = ipc_data_write_start(vfs_phone, (void *) mpa, mpa_size);
 	if (rc != EOK) {
 		async_wait_for(req, NULL);
@@ -186,5 +186,5 @@
 	}
 	
-	rc = ipc_data_write_start(vfs_phone, (void *) fs_name, strlen(fs_name));
+	rc = ipc_data_write_start(vfs_phone, (void *) fs_name, str_size(fs_name));
 	if (rc != EOK) {
 		async_wait_for(req, NULL);
@@ -209,6 +209,6 @@
 	aid_t req;
 	
-	size_t pa_len;
-	char *pa = absolutize(path, &pa_len);
+	size_t pa_size;
+	char *pa = absolutize(path, &pa_size);
 	if (!pa)
 		return ENOMEM;
@@ -219,5 +219,5 @@
 	
 	req = async_send_3(vfs_phone, VFS_OPEN, lflag, oflag, 0, &answer);
-	rc = ipc_data_write_start(vfs_phone, pa, pa_len);
+	rc = ipc_data_write_start(vfs_phone, pa, pa_size);
 	if (rc != EOK) {
 		async_wait_for(req, NULL);
@@ -385,6 +385,6 @@
 	aid_t req;
 	
-	size_t pa_len;
-	char *pa = absolutize(path, &pa_len);
+	size_t pa_size;
+	char *pa = absolutize(path, &pa_size);
 	if (!pa)
 		return ENOMEM;
@@ -395,5 +395,5 @@
 	
 	req = async_send_1(vfs_phone, VFS_MKDIR, mode, NULL);
-	rc = ipc_data_write_start(vfs_phone, pa, pa_len);
+	rc = ipc_data_write_start(vfs_phone, pa, pa_size);
 	if (rc != EOK) {
 		async_wait_for(req, NULL);
@@ -415,6 +415,6 @@
 	aid_t req;
 	
-	size_t pa_len;
-	char *pa = absolutize(path, &pa_len);
+	size_t pa_size;
+	char *pa = absolutize(path, &pa_size);
 	if (!pa)
 		return ENOMEM;
@@ -425,5 +425,5 @@
 	
 	req = async_send_0(vfs_phone, VFS_UNLINK, NULL);
-	rc = ipc_data_write_start(vfs_phone, pa, pa_len);
+	rc = ipc_data_write_start(vfs_phone, pa, pa_size);
 	if (rc != EOK) {
 		async_wait_for(req, NULL);
@@ -455,11 +455,11 @@
 	aid_t req;
 	
-	size_t olda_len;
-	char *olda = absolutize(old, &olda_len);
+	size_t olda_size;
+	char *olda = absolutize(old, &olda_size);
 	if (!olda)
 		return ENOMEM;
 
-	size_t newa_len;
-	char *newa = absolutize(new, &newa_len);
+	size_t newa_size;
+	char *newa = absolutize(new, &newa_size);
 	if (!newa) {
 		free(olda);
@@ -472,5 +472,5 @@
 	
 	req = async_send_0(vfs_phone, VFS_RENAME, NULL);
-	rc = ipc_data_write_start(vfs_phone, olda, olda_len);
+	rc = ipc_data_write_start(vfs_phone, olda, olda_size);
 	if (rc != EOK) {
 		async_wait_for(req, NULL);
@@ -481,5 +481,5 @@
 		return (int) rc;
 	}
-	rc = ipc_data_write_start(vfs_phone, newa, newa_len);
+	rc = ipc_data_write_start(vfs_phone, newa, newa_size);
 	if (rc != EOK) {
 		async_wait_for(req, NULL);
@@ -500,6 +500,6 @@
 int chdir(const char *path)
 {
-	size_t pa_len;
-	char *pa = absolutize(path, &pa_len);
+	size_t pa_size;
+	char *pa = absolutize(path, &pa_size);
 	if (!pa)
 		return ENOMEM;
@@ -517,9 +517,9 @@
 		free(cwd_path);	
 		cwd_path = NULL;
-		cwd_len = 0;
+		cwd_size = 0;
 	}
 	cwd_dir = d;
 	cwd_path = pa;
-	cwd_len = pa_len;
+	cwd_size = pa_size;
 	futex_up(&cwd_futex);
 	return EOK;
@@ -531,5 +531,5 @@
 		return NULL;
 	futex_down(&cwd_futex);
-	if (size < cwd_len + 1) {
+	if (size < cwd_size + 1) {
 		futex_up(&cwd_futex);
 		return NULL;
