lirc hotfix, createdb dir added to 00-dirtree
[hdw-linux/hdw-linux.git] / packages / hackbard / lirc / kernel2.6.14.patch
diff --git a/packages/hackbard/lirc/kernel2.6.14.patch b/packages/hackbard/lirc/kernel2.6.14.patch
new file mode 100644 (file)
index 0000000..4a11d7f
--- /dev/null
@@ -0,0 +1,86 @@
+--- lirc-0.7.2.orig/drivers/lirc_cmdir/lirc_cmdir.c    2005-07-10 10:34:13.000000000 +0200
++++ lirc-0.7.2/drivers/lirc_cmdir/lirc_cmdir.c 2005-09-20 16:32:35.000000000 +0200
+@@ -352,7 +352,7 @@
+       int cmdir_cnt =0;
+               
+       if(n%sizeof(lirc_t)) return(-EINVAL);
+-      retval=verify_area(VERIFY_READ,buf,n);
++      retval=access_ok(VERIFY_READ,buf,n) ? 0 : -EFAULT;
+       if(retval) return(retval);
+       
+       count=n/sizeof(lirc_t);
+--- lirc-0.7.2.orig/drivers/lirc_it87/lirc_it87.c      2005-06-05 17:43:28.000000000 +0200
++++ lirc-0.7.2/drivers/lirc_it87/lirc_it87.c   2005-09-20 16:35:00.000000000 +0200
+@@ -223,8 +223,8 @@
+                       break;
+               }
+               
+-              retval=verify_area(VERIFY_WRITE,(void *) buf+n,
+-                                 sizeof(lirc_t));
++              retval=access_ok(VERIFY_WRITE,(void *) buf+n,
++                                 sizeof(lirc_t)) ? 0 : -EFAULT;
+               if (retval)
+               {
+                       return retval;
+@@ -252,7 +252,7 @@
+         if(n%sizeof(lirc_t) || (n/sizeof(lirc_t)) > WBUF_LEN)
+               return(-EINVAL);
+-      retval = verify_area(VERIFY_READ, buf, n);
++      retval = access_ok(VERIFY_READ, buf, n) ? 0 : -EFAULT;
+       if (retval)
+               return retval;
+       copy_from_user(tx_buf, buf, n);
+--- lirc-0.7.2.orig/drivers/lirc_parallel/lirc_parallel.c      2005-04-23 13:40:01.000000000 +0200
++++ lirc-0.7.2/drivers/lirc_parallel/lirc_parallel.c   2005-09-20 16:36:12.000000000 +0200
+@@ -400,7 +400,7 @@
+       
+       if(n%sizeof(lirc_t)) return(-EINVAL);
+       
+-      result=verify_area(VERIFY_WRITE,buf,n);
++      result=access_ok(VERIFY_WRITE,buf,n) ? 0 : -EFAULT;
+       if(result) return(result);
+       
+       add_wait_queue(&lirc_wait,&wait);
+@@ -449,7 +449,7 @@
+               return(-EBUSY);
+       }
+       if(n%sizeof(lirc_t)) return(-EINVAL);
+-      result=verify_area(VERIFY_READ,buf,n);
++      result=access_ok(VERIFY_READ,buf,n) ? 0 : -EFAULT
+       if(result) return(result);
+       
+       count=n/sizeof(lirc_t);
+--- lirc-0.7.2.orig/drivers/lirc_serial/lirc_serial.c  2005-04-23 13:40:01.000000000 +0200
++++ lirc-0.7.2/drivers/lirc_serial/lirc_serial.c       2005-09-20 16:36:41.000000000 +0200
+@@ -923,7 +923,7 @@
+       }
+       
+       if(n%sizeof(lirc_t)) return(-EINVAL);
+-      retval=verify_area(VERIFY_READ,buf,n);
++      retval=access_ok(VERIFY_READ,buf,n) ? 0 : -EFAULT;
+       if(retval) return(retval);
+       count=n/sizeof(lirc_t);
+       if(count>WBUF_LEN || count%2==0) return(-EINVAL);
+--- lirc-0.7.2.orig/drivers/lirc_sir/lirc_sir.c        2005-04-23 13:40:01.000000000 +0200
++++ lirc-0.7.2/drivers/lirc_sir/lirc_sir.c     2005-09-20 16:37:21.000000000 +0200
+@@ -314,8 +314,8 @@
+       {
+               if(rx_head!=rx_tail)
+               {
+-                      retval=verify_area(VERIFY_WRITE,
+-                                         (void *) buf+n,sizeof(lirc_t));
++                      retval=access_ok(VERIFY_WRITE,
++                                         (void *) buf+n,sizeof(lirc_t)) ? 0 : -EFAULT;
+                       if (retval)
+                       {
+                               return retval;
+@@ -356,7 +356,7 @@
+         if(n%sizeof(lirc_t) || (n/sizeof(lirc_t)) > WBUF_LEN)
+               return(-EINVAL);
+-      retval = verify_area(VERIFY_READ, buf, n);
++      retval = access_ok(VERIFY_READ, buf, n) ? 0 : -EFAULT;
+       if (retval)
+               return retval;
+       copy_from_user(tx_buf, buf, n);