소스 검색

fix failure of tempnam to null-terminate result

tempnam uses an uninitialized buffer which is filled using memcpy and
__randname. It is therefore necessary to explicitly null-terminate it.

based on patch by Felix Janda.
Rich Felker 9 년 전
부모
커밋
062bb737de
1개의 변경된 파일1개의 추가작업 그리고 0개의 파일을 삭제
  1. 1 0
      src/stdio/tempnam.c

+ 1 - 0
src/stdio/tempnam.c

@@ -33,6 +33,7 @@ char *tempnam(const char *dir, const char *pfx)
 	s[dl] = '/';
 	memcpy(s+dl+1, pfx, pl);
 	s[dl+1+pl] = '_';
+	s[l] = 0;
 
 	for (try=0; try<MAXTRIES; try++) {
 		__randname(s+l-6);