patch-2.4.25 linux-2.4.25/drivers/char/drm/r128_state.c
Next file: linux-2.4.25/drivers/char/drm/radeon_cp.c
Previous file: linux-2.4.25/drivers/char/drm/r128_cce.c
Back to the patch index
Back to the overall index
- Lines: 51
- Date:
2004-02-18 05:36:31.000000000 -0800
- Orig file:
linux-2.4.24/drivers/char/drm/r128_state.c
- Orig date:
2003-11-28 10:26:20.000000000 -0800
diff -urN linux-2.4.24/drivers/char/drm/r128_state.c linux-2.4.25/drivers/char/drm/r128_state.c
@@ -23,8 +23,20 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * RED HAT AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * THIS SOFTWARE IS NOT INTENDED FOR USE IN SAFETY CRITICAL SYSTEMS
+ *
* Authors:
* Gareth Hughes <gareth@valinux.com>
+ *
+ * Memory allocation size checks added 14/01/2003, Alan Cox <alan@redhat.com>
*/
#include "r128.h"
@@ -901,6 +913,9 @@
DRM_DEBUG( "%s\n", __FUNCTION__ );
count = depth->n;
+
+ if( count > 4096 )
+ return -EMSGSIZE;
if ( copy_from_user( &x, depth->x, sizeof(x) ) ) {
return -EFAULT;
}
@@ -994,6 +1009,9 @@
DRM_DEBUG( "%s\n", __FUNCTION__ );
count = depth->n;
+
+ if( count > 4096 )
+ return -EMSGSIZE;
x = kmalloc( count * sizeof(*x), GFP_KERNEL );
if ( x == NULL ) {
@@ -1109,6 +1127,9 @@
DRM_DEBUG( "%s\n", __FUNCTION__ );
count = depth->n;
+
+ if ( count > 4096 )
+ return -EMSGSIZE;
if ( copy_from_user( &x, depth->x, sizeof(x) ) ) {
return -EFAULT;
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)