Re: [PATCH v3 5/8] Bluetooth: Fix error code for invalid CID in l2cap_config_req

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Marcel,

On Sun, Sep 15, 2013, Marcel Holtmann wrote:
> >>> The convention of the L2CAP code is to return EFAULT when a CID in the
> >>> request packet is invalid. This patch fixes the l2cap_config_req to use
> >>> that error code instead of ENOENT.
> >>> 
> >>> Signed-off-by: Johan Hedberg <johan.hedberg@xxxxxxxxx>
> >>> ---
> >>> net/bluetooth/l2cap_core.c | 2 +-
> >>> 1 file changed, 1 insertion(+), 1 deletion(-)
> >>> 
> >>> diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c
> >>> index 9ec1561f..d134501 100644
> >>> --- a/net/bluetooth/l2cap_core.c
> >>> +++ b/net/bluetooth/l2cap_core.c
> >>> @@ -3978,7 +3978,7 @@ static inline int l2cap_config_req(struct l2cap_conn *conn,
> >>> 
> >>> 	chan = l2cap_get_chan_by_scid(conn, dcid);
> >>> 	if (!chan)
> >>> -		return -ENOENT;
> >>> +		return -EFAULT;
> >> 
> >> do we really want to use EFAULT. That is normally only used if a
> >> memory copy from userspace to kernel or vice versa fails.
> > 
> > EFAULT seemed to be the most common error code in this case, but now
> > that I did some research it seems it's mostly from newish AMP related
> > code. Would you be ok if I just switch all places to use ENOENT then?
> 
> EFAULT is really for memory address errors. It is a pretty bad idea to use CID errors.
> 
> I am fine with keep using ENOENT if we used that before. If that is
> what the original code used, then lets keep using it. Otherwise we
> better find a more descriptive error.

If we ignore new AMP code there's only one "legacy" reference for this
kind of situation which is l2cap_config_req. Since it has always used
ENOENT for a failed CID lookup I'll follow that lead and use the same
error for all places that need it.

Johan
--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux