Bug 127194

Summary: [patch] telnet(1): arpa/telnet.h: TELOPT(x) returns wrong result / segfaults
Product: Base System Reporter: joost
Component: binAssignee: Antoine Brodin <antoine>
Status: Closed FIXED    
Severity: Affects Only Me    
Priority: Normal    
Version: 7.0-RELEASE   
Hardware: Any   
OS: Any   
Attachments:
Description Flags
file.diff none

Description joost 2008-09-07 21:40:02 UTC
The telnet options added to src/contrib/telnet/arpa/telnet.h in rev
1.9 (==RELENG_5_2_0_RELEASE==HEAD) were discontinuous, but names
were added to telopts[] without the corresponding gaps. This can cause
TELOPT to return pointers outside of telopts[] even though TELOPT_OK
returns 'true'.

How-To-Repeat: 
#include <stdio.h>
#define TELOPTS
#include <arpa/telnet.h>

int main(int argc,char *argv[]) {
  unsigned int opt;

  opt=TELOPT_KERMIT;
  if (TELOPT_OK(opt)) 
    printf("Option name:%s\n",TELOPT(opt));
  else
    printf("Unknown option %d\n",opt);
  return 0;
}

depending on your luck, this either tells you the option is "(null)" or segfaults.
Comment 1 Antoine Brodin freebsd_committer freebsd_triage 2008-09-10 19:37:35 UTC
Responsible Changed
From-To: freebsd-bugs->antoine

Take.
Comment 2 dfilter service freebsd_committer freebsd_triage 2008-09-13 18:48:43 UTC
antoine     2008-09-13 17:46:50 UTC

  FreeBSD src repository

  Modified files:
    contrib/telnet/arpa  telnet.h 
    include/arpa         telnet.h 
  Log:
  SVN rev 183004 on 2008-09-13 17:46:50Z by antoine
  
  Fix TELOPT(opt) when opt > TELOPT_TN3270E.
  
  PR:             127194
  Submitted by:   Joost Bekkers
  MFC after:      1 month
  
  Revision  Changes    Path
  1.10      +2 -2      src/contrib/telnet/arpa/telnet.h
  1.10      +2 -2      src/include/arpa/telnet.h
_______________________________________________
cvs-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/cvs-all
To unsubscribe, send any mail to "cvs-all-unsubscribe@freebsd.org"
Comment 3 Antoine Brodin freebsd_committer freebsd_triage 2008-09-13 18:52:36 UTC
State Changed
From-To: open->patched

Patch committed in head.
Comment 4 dfilter service freebsd_committer freebsd_triage 2009-01-10 11:46:07 UTC
Author: antoine
Date: Sat Jan 10 11:45:47 2009
New Revision: 187017
URL: http://svn.freebsd.org/changeset/base/187017

Log:
  MFC r183004 to stable/7:
    Fix TELOPT(opt) when opt > TELOPT_TN3270E.
  
    PR:		127194
    Submitted by:	Joost Bekkers
    MFC after:	1 month

Modified:
  stable/7/contrib/telnet/   (props changed)
  stable/7/contrib/telnet/arpa/telnet.h
  stable/7/include/   (props changed)
  stable/7/include/arpa/telnet.h

Modified: stable/7/contrib/telnet/arpa/telnet.h
==============================================================================
--- stable/7/contrib/telnet/arpa/telnet.h	Sat Jan 10 10:58:41 2009	(r187016)
+++ stable/7/contrib/telnet/arpa/telnet.h	Sat Jan 10 11:45:47 2009	(r187017)
@@ -140,8 +140,8 @@ const char *telopts[NTELOPTS+1] = {
 	"TACACS UID", "OUTPUT MARKING", "TTYLOC",
 	"3270 REGIME", "X.3 PAD", "NAWS", "TSPEED", "LFLOW",
 	"LINEMODE", "XDISPLOC", "OLD-ENVIRON", "AUTHENTICATION",
-	"ENCRYPT", "NEW-ENVIRON", "TN3270E", "CHARSET", "COM-PORT",
-	"KERMIT",
+	"ENCRYPT", "NEW-ENVIRON", "TN3270E", "XAUTH", "CHARSET",
+	"RSP", "COM-PORT", "SLE", "STARTTLS", "KERMIT",
 	0
 };
 #define	TELOPT_FIRST	TELOPT_BINARY

Modified: stable/7/include/arpa/telnet.h
==============================================================================
--- stable/7/include/arpa/telnet.h	Sat Jan 10 10:58:41 2009	(r187016)
+++ stable/7/include/arpa/telnet.h	Sat Jan 10 11:45:47 2009	(r187017)
@@ -140,8 +140,8 @@ const char *telopts[NTELOPTS+1] = {
 	"TACACS UID", "OUTPUT MARKING", "TTYLOC",
 	"3270 REGIME", "X.3 PAD", "NAWS", "TSPEED", "LFLOW",
 	"LINEMODE", "XDISPLOC", "OLD-ENVIRON", "AUTHENTICATION",
-	"ENCRYPT", "NEW-ENVIRON", "TN3270E", "CHARSET", "COM-PORT",
-	"KERMIT",
+	"ENCRYPT", "NEW-ENVIRON", "TN3270E", "XAUTH", "CHARSET",
+	"RSP", "COM-PORT", "SLE", "STARTTLS", "KERMIT",
 	0
 };
 #define	TELOPT_FIRST	TELOPT_BINARY
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
Comment 5 dfilter service freebsd_committer freebsd_triage 2009-01-10 16:57:35 UTC
Author: antoine
Date: Sat Jan 10 16:57:22 2009
New Revision: 187026
URL: http://svn.freebsd.org/changeset/base/187026

Log:
  MFC r183004 to stable/6:
    Fix TELOPT(opt) when opt > TELOPT_TN3270E.
  
    PR:		127194
    Submitted by:	Joost Bekkers
    MFC after:	1 month

Modified:
  stable/6/contrib/telnet/   (props changed)
  stable/6/contrib/telnet/arpa/telnet.h
  stable/6/include/   (props changed)
  stable/6/include/arpa/telnet.h

Modified: stable/6/contrib/telnet/arpa/telnet.h
==============================================================================
--- stable/6/contrib/telnet/arpa/telnet.h	Sat Jan 10 16:42:13 2009	(r187025)
+++ stable/6/contrib/telnet/arpa/telnet.h	Sat Jan 10 16:57:22 2009	(r187026)
@@ -140,8 +140,8 @@ const char *telopts[NTELOPTS+1] = {
 	"TACACS UID", "OUTPUT MARKING", "TTYLOC",
 	"3270 REGIME", "X.3 PAD", "NAWS", "TSPEED", "LFLOW",
 	"LINEMODE", "XDISPLOC", "OLD-ENVIRON", "AUTHENTICATION",
-	"ENCRYPT", "NEW-ENVIRON", "TN3270E", "CHARSET", "COM-PORT",
-	"KERMIT",
+	"ENCRYPT", "NEW-ENVIRON", "TN3270E", "XAUTH", "CHARSET",
+	"RSP", "COM-PORT", "SLE", "STARTTLS", "KERMIT",
 	0
 };
 #define	TELOPT_FIRST	TELOPT_BINARY

Modified: stable/6/include/arpa/telnet.h
==============================================================================
--- stable/6/include/arpa/telnet.h	Sat Jan 10 16:42:13 2009	(r187025)
+++ stable/6/include/arpa/telnet.h	Sat Jan 10 16:57:22 2009	(r187026)
@@ -140,8 +140,8 @@ const char *telopts[NTELOPTS+1] = {
 	"TACACS UID", "OUTPUT MARKING", "TTYLOC",
 	"3270 REGIME", "X.3 PAD", "NAWS", "TSPEED", "LFLOW",
 	"LINEMODE", "XDISPLOC", "OLD-ENVIRON", "AUTHENTICATION",
-	"ENCRYPT", "NEW-ENVIRON", "TN3270E", "CHARSET", "COM-PORT",
-	"KERMIT",
+	"ENCRYPT", "NEW-ENVIRON", "TN3270E", "XAUTH", "CHARSET",
+	"RSP", "COM-PORT", "SLE", "STARTTLS", "KERMIT",
 	0
 };
 #define	TELOPT_FIRST	TELOPT_BINARY
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
Comment 6 Antoine Brodin freebsd_committer freebsd_triage 2009-01-10 17:00:34 UTC
State Changed
From-To: patched->closed

Fixed in head, stable/7 and stable/6.