copy_to(from)_user시에 \0까지도 통째로 복사하는 방법은 없나
글쓴이: ilgoddes / 작성시간: 토, 2004/11/20 - 5:29오후
안녕하세요...
커널에서 copy_from_user를 이용하여 파일을 읽어들인 다음에
암호화를 해서 다시 copy_to_user로 파일에 집어넣는걸 하고 있는데요...
정말 큰 벽을 만나서......
암호화를 하면 데이터가 깨지거든요...
그런데 그 깨진 데이터 안에 NULL값이 들어있어요...
그걸 다시 copy_to_user로 복사를 하려니 NULL을 만나면 그냥 말아버리네요...
어떻게 방법이 없을까요?
혹시나 해서 copy_to_user 정의되어 있는 곳을 고쳐볼라고도 했는데...
asm으로 짜여있어서...ㅡㅡ;
꼭 도움 부탁드립니다...
Forums:
copy_from/to_user
copy_from/to_user 함수는 복사되지 않은 데이터의 양을 리턴합니다.
이 값을 이용하시는 것은 어떨지..
Re: copy_to(from)_user시에 \0까지도 통째로 복사하는 방법은
음, 저 같은 copy_from_user 같은 함수를
보고, 직접 만들어 보겠습니다. 고운 하루되세요.
=========================
CharSyam ^^ --- 고운 하루
=========================
copy_to_user 는 string 처리 함수가 아닙니다. NULL
copy_to_user 는 string 처리 함수가 아닙니다. NULL 을 만난다고 copy 를 중단하거나 하지 않습니다. User memory <-> kernel memory 복사용 string 처리 함수는 따로 있습니다.
user 쪽에서 할당한 구조체의 크기와, 드라이버에서 복사하려는 구조체의 크기를 잘 검토해보세요.
Re: copy_to(from)_user시에 \0까지도 통째로 복사하는 방법은 ?
저 부분이 상당히 아키텍쳐 의존적이다 보니 범용 모듈을 만들고 계신다면 꽤 어렵겠네요.
Re: copy_to(from)_user시에 \0까지도 통째로 복사하는 방법은 ?
커널 프로그래밍에서는 위험한 발상입니다. 자신이 쓰고 싶은 기능이 커널 infrastructure 에 구현되어 있지 않다는 것은 기존의 모든 모듈/드라이버들도 그런 기능을 사용하지 않고 구현되었다는것을 암시하죠. 왜 그런지를 먼저 이해한 다음에 어떻게 대처할지를 정해도 늦지 않습니다.
어드레싱 모드..
copy_from/to_user 를 살펴보다가 궁금한 점이 생겨서 다시 질문을 올립니다.. :)
먼저 264 번 라인의 lea 명령어에 사용된 0(%3,%0,4) 부분이 어떻게 해석되는지 궁금하고
그 아래에서 jmp 2b 를 부르면 제어가 어떻게 넘어가는 것인지도 알고 싶습니다. (리턴(종료?)되는 것인듯 한데..)
또 273 번 라인에서 "1"(to), "2"(from) 는 __d0, __d1 의 초기값이 되는건가요?
댓글 달기