[lkml]   [2003]   [Mar]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [CHECKER] potential dereference of user pointer errors

    "David S. Miller" <> writes:

    > On Mon, 2003-03-24 at 14:28, Raja R Harinath wrote:
    >> Something like
    >> /* struct user_space should never be defined. */
    >> typedef struct user_space user_space;
    >> int copy_to_user (user_space *to, char *from, size_t len);
    >> int copy_from_user (char *to, user_space *from, size_t len);
    >> /* ... */
    >> #define TREAT_AS_USER_SPACE_POINTER(p) \
    >> ({ \
    >> BUG_ON(get_fs() != get_gs()); \
    >> (user_space *)p; \
    >> })
    > A great idea, we'd need to use this struct user_space at every
    > system call,

    Which is good, I think. It annotates the source.

    > and it doesn't work to well when pointers are embedded inside of a
    > structure.

    I don't understand this point. 'struct user_space' will never be
    defined. The C compiler ensure that 'struct user_space *p' cannot be
    dereferenced then, since it will be a pointer to an incomplete type.

    I don't see any difference between

    struct foo { char *p; };


    struct foo { user_space *p; };

    in terms of the code generated. (On second reading, I don't think
    this was your point though).

    - Hari
    Raja R Harinath ------------------------------

    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2005-03-22 13:34    [W:0.020 / U:135.168 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site