Check-in [99eb340549]
Overview
Comment:Updated to check return value of chdir()
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 99eb34054944284b0ddc77f6d52123797b8bbaa1
User & Date: rkeene on 2012-09-15 06:48:04
Other Links: manifest | tags
Context
2012-09-15
06:53
Removed unneeded casts check-in: 413d9011a9 user: rkeene tags: trunk
06:48
Updated to check return value of chdir() check-in: 99eb340549 user: rkeene tags: trunk
06:44
Updated to check return value of waitpid() check-in: 316b02041a user: rkeene tags: trunk
Changes

Modified initrd/admin-tclkit/kitcreator-modules/system/system.c from [7ecfb38f87] to [7d48c39a12].

1886
1887
1888
1889
1890
1891
1892
1893

1894
1895
1896
1897
1898
1899
1900
1886
1887
1888
1889
1890
1891
1892

1893
1894
1895
1896
1897
1898
1899
1900







-
+







	pid_t child, child_pgid = -1, waitpid_ret;
	ssize_t read_ret;
	time_t currtime;
	char *argv[3], *envv[512];
	char *logfile, *filename, *cwd, *user, *group;
	char logmsg[2048];
	fd_set read_fdset;
	int pipe_ret, setsid_ret, execve_ret, tcl_ret, select_ret;
	int pipe_ret, setsid_ret, execve_ret, tcl_ret, select_ret, chdir_ret;
	int null_fd, log_fd, tmp_fd, max_fd;
	int env_entry_objc;
	int fds[2], fd;
	int status;
	int idx;

	/* 1. Parse arguments */
2027
2028
2029
2030
2031
2032
2033
2034






2035
2036
2037
2038
2039
2040
2041
2027
2028
2029
2030
2031
2032
2033

2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046







-
+
+
+
+
+
+







	}

	/* 6. Setup environment */
	/* 6.a. Set umask */
	umask(umask_val);

	/* 6.b. Set working directory */
	chdir(cwd);
	chdir_ret = chdir(cwd);
	if (chdir_ret != 0) {
		write(fd, &child_pgid, sizeof(child_pgid));

		_exit(0);
	}

	/* 6.c. Open log file for stderr and stdout */
	log_fd = open(logfile, O_WRONLY | O_CREAT | O_APPEND, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);

	/* 6.d. Open "/dev/null" for stdin */
	null_fd = open("/dev/null", O_RDONLY);
	if (null_fd < 0 || log_fd <0) {