Skip to content

Commit b93ea53

Browse files
committed
[app] actually, don’t log, put electra last, and use NSString for path
1 parent 390a606 commit b93ea53

File tree

1 file changed

+13
-12
lines changed

1 file changed

+13
-12
lines changed

NewTerm/HBNTSubProcess.m

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -66,10 +66,10 @@ - (void)start {
6666
};
6767

6868
// NOTE: These should never return if successful
69-
[self _startProcess:"/bootstrap/bin/bash" arguments:sh_args environment:env];
70-
[self _startProcess:"/usr/bin/login" arguments:login_args environment:env];
71-
[self _startProcess:"/bin/login" arguments:login_args environment:env];
72-
[self _startProcess:"/bin/sh" arguments:sh_args environment:env];
69+
[self _startProcess:@"/usr/bin/login" arguments:login_args environment:env];
70+
[self _startProcess:@"/bin/login" arguments:login_args environment:env];
71+
[self _startProcess:@"/bin/sh" arguments:sh_args environment:env];
72+
[self _startProcess:@"/bootstrap/bin/bash" arguments:sh_args environment:env];
7373
} else {
7474
HBLogDebug(@"process forked: %d", pid);
7575
_childPID = pid;
@@ -93,23 +93,24 @@ - (void)stop {
9393
_childPID = 0;
9494
}
9595

96-
- (int)_startProcess:(const char *)path arguments:(char *const[])args environment:(char *const[])env {
97-
NSString *pathString = @(path);
96+
- (int)_startProcess:(NSString *)path arguments:(char *const[])args environment:(char *const[])env {
9897
NSFileManager *fileManager = [NSFileManager defaultManager];
99-
if (![fileManager fileExistsAtPath:pathString]) {
100-
HBLogError(@"%s: File does not exist", path);
98+
99+
if (![fileManager fileExistsAtPath:path]) {
101100
return -1;
102101
}
102+
103103
// Notably, we don't test group or other bits so this still might not always
104104
// notice if the binary is not executable by us.
105-
if (![fileManager isExecutableFileAtPath:pathString]) {
106-
HBLogError(@"%s: File does not exist", path);
105+
if (![fileManager isExecutableFileAtPath:path]) {
107106
return -1;
108107
}
109-
if (execve(path, args, env) == -1) {
110-
HBLogError(@"%s: exec failed: %s", path, strerror(errno));
108+
109+
if (execve(path.UTF8String, args, env) == -1) {
110+
HBLogError(@"%@: exec failed: %s", path, strerror(errno));
111111
return -1;
112112
}
113+
113114
// execve never returns if successful
114115
return 0;
115116
}

0 commit comments

Comments
 (0)