Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
[sfrench/cifs-2.6.git] / drivers / isdn / sc / ioctl.c
index f4f71226a0789ece854f9c717b18a93454c0614a..1081091bbfaf74e95285c02bc8bf85ab075e5018 100644 (file)
 #include "card.h"
 #include "scioc.h"
 
-extern int indicate_status(int, int, unsigned long, char *);
-extern int startproc(int);
-extern int reset(int);
-extern int send_and_receive(int, unsigned int, unsigned char,unsigned char,
-               unsigned char,unsigned char, 
-               unsigned char, unsigned char *, RspMessage *, int);
-
-extern board *sc_adapter[];
-
-
 static int GetStatus(int card, boardInfo *);
 
 /*
@@ -97,6 +87,7 @@ int sc_ioctl(int card, scs_ioctl *data)
 
        case SCIOCSTART:
        {
+               kfree(rcvmsg);
                pr_debug("%s: SCIOSTART: ioctl received\n",
                                sc_adapter[card]->devicename);
                if(sc_adapter[card]->EngineUp) {
@@ -235,6 +226,7 @@ int sc_ioctl(int card, scs_ioctl *data)
                 */
                if (copy_from_user(spid, data->dataptr, SCIOC_SPIDSIZE)) {
                        kfree(rcvmsg);
+                       kfree(spid);
                        return -EFAULT;
                }