rediff hardening write patch
This commit is contained in:
parent
d3d3920a27
commit
b2fed5a66d
@ -1,61 +0,0 @@
|
|||||||
diff --git a/tty.c b/tty.c
|
|
||||||
index 9d30ed9..2535bf3 100644
|
|
||||||
--- a/tty.c
|
|
||||||
+++ b/tty.c
|
|
||||||
@@ -283,7 +283,8 @@ tty_free(struct tty *tty)
|
|
||||||
void
|
|
||||||
tty_raw(struct tty *tty, const char *s)
|
|
||||||
{
|
|
||||||
- write(tty->fd, s, strlen(s));
|
|
||||||
+ if (write(tty->fd, s, strlen(s)) == -1)
|
|
||||||
+ fatal("write failed");
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
@@ -316,7 +317,9 @@ tty_puts(struct tty *tty, const char *s)
|
|
||||||
buffer_write(tty->out, s, strlen(s));
|
|
||||||
|
|
||||||
if (tty->log_fd != -1)
|
|
||||||
- write(tty->log_fd, s, strlen(s));
|
|
||||||
+ if (write(tty->log_fd, s, strlen(s)) == -1)
|
|
||||||
+ fatal("write failed");
|
|
||||||
+
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
@@ -342,7 +345,8 @@ tty_putc(struct tty *tty, u_char ch)
|
|
||||||
}
|
|
||||||
|
|
||||||
if (tty->log_fd != -1)
|
|
||||||
- write(tty->log_fd, &ch, 1);
|
|
||||||
+ if (write(tty->log_fd, &ch, 1) == -1)
|
|
||||||
+ fatal("write failed");
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
@@ -355,7 +359,9 @@ tty_pututf8(struct tty *tty, const struct grid_utf8 *gu)
|
|
||||||
break;
|
|
||||||
buffer_write8(tty->out, gu->data[i]);
|
|
||||||
if (tty->log_fd != -1)
|
|
||||||
- write(tty->log_fd, &gu->data[i], 1);
|
|
||||||
+ if (write(tty->log_fd, &gu->data[i], 1) == -1)
|
|
||||||
+ fatal("write failed");
|
|
||||||
+
|
|
||||||
}
|
|
||||||
|
|
||||||
tty->cx += gu->width;
|
|
||||||
diff --git a/window.c b/window.c
|
|
||||||
index f4be17d..318d2e9 100644
|
|
||||||
--- a/window.c
|
|
||||||
+++ b/window.c
|
|
||||||
@@ -516,7 +516,9 @@ window_pane_spawn(struct window_pane *wp, const char *cmd, const char *shell,
|
|
||||||
return (-1);
|
|
||||||
case 0:
|
|
||||||
if (chdir(wp->cwd) != 0)
|
|
||||||
- chdir("/");
|
|
||||||
+ if (chdir("/") <0)
|
|
||||||
+ fatal("chdir failed");
|
|
||||||
+
|
|
||||||
|
|
||||||
if (tcgetattr(STDIN_FILENO, &tio2) != 0)
|
|
||||||
fatal("tcgetattr failed");
|
|
57
tmux-1.2-writehard.patch
Normal file
57
tmux-1.2-writehard.patch
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
diff -up tmux-1.2/tty.c.writehard tmux-1.2/tty.c
|
||||||
|
--- tmux-1.2/tty.c.writehard 2010-03-08 15:53:49.000000000 +0100
|
||||||
|
+++ tmux-1.2/tty.c 2010-03-28 12:01:49.335023195 +0200
|
||||||
|
@@ -300,7 +300,8 @@ tty_free(struct tty *tty)
|
||||||
|
void
|
||||||
|
tty_raw(struct tty *tty, const char *s)
|
||||||
|
{
|
||||||
|
- write(tty->fd, s, strlen(s));
|
||||||
|
+ if (write(tty->fd, s, strlen(s)) == -1)
|
||||||
|
+ fatal("write failed");
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
@@ -333,7 +334,8 @@ tty_puts(struct tty *tty, const char *s)
|
||||||
|
bufferevent_write(tty->event, s, strlen(s));
|
||||||
|
|
||||||
|
if (tty->log_fd != -1)
|
||||||
|
- write(tty->log_fd, s, strlen(s));
|
||||||
|
+ if(write(tty->log_fd, s, strlen(s)) == -1)
|
||||||
|
+ fatal("write failed");
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
@@ -359,7 +361,8 @@ tty_putc(struct tty *tty, u_char ch)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (tty->log_fd != -1)
|
||||||
|
- write(tty->log_fd, &ch, 1);
|
||||||
|
+ if (write(tty->log_fd, &ch, 1) == -1)
|
||||||
|
+ fatal("write failed");
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
@@ -370,7 +373,8 @@ tty_pututf8(struct tty *tty, const struc
|
||||||
|
size = grid_utf8_size(gu);
|
||||||
|
bufferevent_write(tty->event, gu->data, size);
|
||||||
|
if (tty->log_fd != -1)
|
||||||
|
- write(tty->log_fd, gu->data, size);
|
||||||
|
+ if(write(tty->log_fd, gu->data, size) == -1)
|
||||||
|
+ fatal("write failed");
|
||||||
|
tty->cx += gu->width;
|
||||||
|
}
|
||||||
|
|
||||||
|
diff -up tmux-1.2/window.c.writehard tmux-1.2/window.c
|
||||||
|
--- tmux-1.2/window.c.writehard 2010-02-08 19:10:07.000000000 +0100
|
||||||
|
+++ tmux-1.2/window.c 2010-03-28 12:03:07.316900726 +0200
|
||||||
|
@@ -518,7 +518,9 @@ window_pane_spawn(struct window_pane *wp
|
||||||
|
return (-1);
|
||||||
|
case 0:
|
||||||
|
if (chdir(wp->cwd) != 0)
|
||||||
|
- chdir("/");
|
||||||
|
+ if (chdir("/") <0)
|
||||||
|
+ fatal("chdir failed");
|
||||||
|
+
|
||||||
|
|
||||||
|
if (tcgetattr(STDIN_FILENO, &tio2) != 0)
|
||||||
|
fatal("tcgetattr failed");
|
@ -15,7 +15,9 @@ Source0: http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.
|
|||||||
Patch0: tmux-1.0-02_fix_wrong_location.diff
|
Patch0: tmux-1.0-02_fix_wrong_location.diff
|
||||||
Patch1: tmux-1.0-03_proper_socket_handling.diff
|
Patch1: tmux-1.0-03_proper_socket_handling.diff
|
||||||
Patch2: tmux-1.0-04_dropping_unnecessary_privileges.diff
|
Patch2: tmux-1.0-04_dropping_unnecessary_privileges.diff
|
||||||
#Patch3: tmux-1.0-06_hardening_write_return.diff
|
# 2010-03-28: Submitted upstream:
|
||||||
|
# https://sourceforge.net/tracker/?func=detail&aid=2977945&group_id=200378&atid=973264
|
||||||
|
Patch3: tmux-1.2-writehard.patch
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||||
|
|
||||||
BuildRequires: ncurses-devel
|
BuildRequires: ncurses-devel
|
||||||
@ -32,7 +34,7 @@ as GNU Screen.
|
|||||||
%patch0 -p1 -b .location
|
%patch0 -p1 -b .location
|
||||||
%patch1 -p1 -b .sockethandling
|
%patch1 -p1 -b .sockethandling
|
||||||
%patch2 -p1 -b .dropprivs
|
%patch2 -p1 -b .dropprivs
|
||||||
#%patch3 -p1 -b .writehard
|
%patch3 -p1 -b .writehard
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%configure
|
%configure
|
||||||
@ -61,6 +63,7 @@ getent group tmux >/dev/null || groupadd -r tmux
|
|||||||
%changelog
|
%changelog
|
||||||
* Sun Mar 28 2010 Sven Lankes <sven@lank.es> 1.2-1
|
* Sun Mar 28 2010 Sven Lankes <sven@lank.es> 1.2-1
|
||||||
- New upstream release
|
- New upstream release
|
||||||
|
- rediff writehard patch
|
||||||
|
|
||||||
* Mon Nov 09 2009 Sven Lankes <sven@lank.es> 1.1-1
|
* Mon Nov 09 2009 Sven Lankes <sven@lank.es> 1.1-1
|
||||||
- New upstream release
|
- New upstream release
|
||||||
|
Loading…
Reference in New Issue
Block a user