lkml.org 
[lkml]   [2003]   [Jul]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectPATCH: serial proc gives info on keycounts which can sometiems be abused

For 2.4.x we made the file r-------- but for 2.6 we can do a nicer job

diff -u --new-file --recursive --exclude-from /usr/src/exclude linux-2.6.0-test1/drivers/serial/core.c linux-2.6.0-test1-ac2/drivers/serial/core.c
--- linux-2.6.0-test1/drivers/serial/core.c 2003-07-10 21:06:05.000000000 +0100
+++ linux-2.6.0-test1-ac2/drivers/serial/core.c 2003-07-15 17:48:39.000000000 +0100
@@ -1667,23 +1667,25 @@
return ret + 1;
}

- status = port->ops->get_mctrl(port);
-
- ret += sprintf(buf + ret, " tx:%d rx:%d",
- port->icount.tx, port->icount.rx);
- if (port->icount.frame)
- ret += sprintf(buf + ret, " fe:%d",
- port->icount.frame);
- if (port->icount.parity)
- ret += sprintf(buf + ret, " pe:%d",
- port->icount.parity);
- if (port->icount.brk)
- ret += sprintf(buf + ret, " brk:%d",
- port->icount.brk);
- if (port->icount.overrun)
- ret += sprintf(buf + ret, " oe:%d",
- port->icount.overrun);
-
+ if(capable(CAP_SYS_ADMIN))
+ {
+ status = port->ops->get_mctrl(port);
+
+ ret += sprintf(buf + ret, " tx:%d rx:%d",
+ port->icount.tx, port->icount.rx);
+ if (port->icount.frame)
+ ret += sprintf(buf + ret, " fe:%d",
+ port->icount.frame);
+ if (port->icount.parity)
+ ret += sprintf(buf + ret, " pe:%d",
+ port->icount.parity);
+ if (port->icount.brk)
+ ret += sprintf(buf + ret, " brk:%d",
+ port->icount.brk);
+ if (port->icount.overrun)
+ ret += sprintf(buf + ret, " oe:%d",
+ port->icount.overrun);
+
#define INFOBIT(bit,str) \
if (port->mctrl & (bit)) \
strncat(stat_buf, (str), sizeof(stat_buf) - \
@@ -1693,19 +1695,22 @@
strncat(stat_buf, (str), sizeof(stat_buf) - \
strlen(stat_buf) - 2)

- stat_buf[0] = '\0';
- stat_buf[1] = '\0';
- INFOBIT(TIOCM_RTS, "|RTS");
- STATBIT(TIOCM_CTS, "|CTS");
- INFOBIT(TIOCM_DTR, "|DTR");
- STATBIT(TIOCM_DSR, "|DSR");
- STATBIT(TIOCM_CAR, "|CD");
- STATBIT(TIOCM_RNG, "|RI");
- if (stat_buf[0])
- stat_buf[0] = ' ';
- strcat(stat_buf, "\n");
-
- ret += sprintf(buf + ret, stat_buf);
+ stat_buf[0] = '\0';
+ stat_buf[1] = '\0';
+ INFOBIT(TIOCM_RTS, "|RTS");
+ STATBIT(TIOCM_CTS, "|CTS");
+ INFOBIT(TIOCM_DTR, "|DTR");
+ STATBIT(TIOCM_DSR, "|DSR");
+ STATBIT(TIOCM_CAR, "|CD");
+ STATBIT(TIOCM_RNG, "|RI");
+ if (stat_buf[0])
+ stat_buf[0] = ' ';
+ strcat(stat_buf, "\n");
+
+ ret += sprintf(buf + ret, stat_buf);
+ }
+#undef STATBIT
+#undef INFOBIT
return ret;
}

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
\
 
 \ /
  Last update: 2005-03-22 13:46    [W:0.020 / U:0.140 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site