@@ -51,12 +51,12 @@ static int do_active_device(struct ctl_table *table, int write,
5151
5252 for (dev = port -> devices ; dev ; dev = dev -> next ) {
5353 if (dev == port -> cad ) {
54- len += sprintf (buffer , "%s\n" , dev -> name );
54+ len += snprintf (buffer , sizeof ( buffer ) , "%s\n" , dev -> name );
5555 }
5656 }
5757
5858 if (!len ) {
59- len += sprintf (buffer , "%s\n" , "none" );
59+ len += snprintf (buffer , sizeof ( buffer ) , "%s\n" , "none" );
6060 }
6161
6262 if (len > * lenp )
@@ -87,19 +87,19 @@ static int do_autoprobe(struct ctl_table *table, int write,
8787 }
8888
8989 if ((str = info -> class_name ) != NULL )
90- len += sprintf (buffer + len , "CLASS:%s;\n" , str );
90+ len += snprintf (buffer + len , sizeof ( buffer ) - len , "CLASS:%s;\n" , str );
9191
9292 if ((str = info -> model ) != NULL )
93- len += sprintf (buffer + len , "MODEL:%s;\n" , str );
93+ len += snprintf (buffer + len , sizeof ( buffer ) - len , "MODEL:%s;\n" , str );
9494
9595 if ((str = info -> mfr ) != NULL )
96- len += sprintf (buffer + len , "MANUFACTURER:%s;\n" , str );
96+ len += snprintf (buffer + len , sizeof ( buffer ) - len , "MANUFACTURER:%s;\n" , str );
9797
9898 if ((str = info -> description ) != NULL )
99- len += sprintf (buffer + len , "DESCRIPTION:%s;\n" , str );
99+ len += snprintf (buffer + len , sizeof ( buffer ) - len , "DESCRIPTION:%s;\n" , str );
100100
101101 if ((str = info -> cmdset ) != NULL )
102- len += sprintf (buffer + len , "COMMAND SET:%s;\n" , str );
102+ len += snprintf (buffer + len , sizeof ( buffer ) - len , "COMMAND SET:%s;\n" , str );
103103
104104 if (len > * lenp )
105105 len = * lenp ;
@@ -117,7 +117,7 @@ static int do_hardware_base_addr(struct ctl_table *table, int write,
117117 void * result , size_t * lenp , loff_t * ppos )
118118{
119119 struct parport * port = (struct parport * )table -> extra1 ;
120- char buffer [20 ];
120+ char buffer [64 ];
121121 int len = 0 ;
122122
123123 if (* ppos ) {
@@ -128,7 +128,7 @@ static int do_hardware_base_addr(struct ctl_table *table, int write,
128128 if (write ) /* permissions prevent this anyway */
129129 return - EACCES ;
130130
131- len += sprintf (buffer , "%lu\t%lu\n" , port -> base , port -> base_hi );
131+ len += snprintf (buffer , sizeof ( buffer ) , "%lu\t%lu\n" , port -> base , port -> base_hi );
132132
133133 if (len > * lenp )
134134 len = * lenp ;
@@ -155,7 +155,7 @@ static int do_hardware_irq(struct ctl_table *table, int write,
155155 if (write ) /* permissions prevent this anyway */
156156 return - EACCES ;
157157
158- len += sprintf (buffer , "%d\n" , port -> irq );
158+ len += snprintf (buffer , sizeof ( buffer ) , "%d\n" , port -> irq );
159159
160160 if (len > * lenp )
161161 len = * lenp ;
@@ -182,7 +182,7 @@ static int do_hardware_dma(struct ctl_table *table, int write,
182182 if (write ) /* permissions prevent this anyway */
183183 return - EACCES ;
184184
185- len += sprintf (buffer , "%d\n" , port -> dma );
185+ len += snprintf (buffer , sizeof ( buffer ) , "%d\n" , port -> dma );
186186
187187 if (len > * lenp )
188188 len = * lenp ;
@@ -213,7 +213,7 @@ static int do_hardware_modes(struct ctl_table *table, int write,
213213#define printmode (x ) \
214214do { \
215215 if (port->modes & PARPORT_MODE_##x) \
216- len += sprintf (buffer + len, "%s%s", f++ ? "," : "", #x); \
216+ len += snprintf (buffer + len, sizeof(buffer) - len, "%s%s", f++ ? "," : "", #x); \
217217} while (0)
218218 int f = 0 ;
219219 printmode (PCSPP );
0 commit comments