typos 오탈자 도전 1 whlie ( * src && left ) { * dst ++ = * src ++ ; if ( left = 0 ) die ( "badlen" ) ; left -- ; } if 조건에 관계 연산자 == 대신 대입 연산자 = 가 설정되어 있다. 이로 인해 left 이 0으로 설정되어도 while 구문을 벗어나지 못하고 left 값을 감소시키며 반복 수행한다. 수정 코드 if ( left == 0 ) 도전 2 int f ; f = get_security_flags ( username ) ; if ( f = FLAG_AUTHENTICATED ) { return LOGIN_OK ; } return LOGIN_FAILED ; if 조건에 관계 연산자 == 대신 대입 연산자 = 가 설정되어 있어 get_security_flags 결과와 무관하게 로그인 성공을 반환하고 있다. 수정 코드 if ( f == FLAG_AUTHENTICATED ) 도전 3 for ( i == 5 ; src [ i ] && i < 10 ; i ++ ) { dst [ i -5 ] = src [ i ] ; } for 조건에 대입 연산자 = 대신에 관계 연산자 == 가 설정되어 있어 i 가 10보다 작은 값일 때, 버퍼를 벗어날 위험이 있다. 수정 코드 for ( i = 5 ; src [ i ] && i < 10 ; i ++ ) 도전 4 if ( get_string ( src ) && check_for_overflow ( src ) & copy_string ( dst , src ) ) printf ( "string safely copied\n" ) ; 논리 연산자...