瀏覽代碼

Workaround #178

Copy the input byte slice to defend from https://github.com/src-d/enry/issues/196

Signed-off-by: Vadim Markovtsev <vadim@sourced.tech>
Vadim Markovtsev 6 年之前
父節點
當前提交
6d56ee10a5
共有 1 個文件被更改,包括 5 次插入1 次删除
  1. 5 1
      internal/plumbing/languages.go

+ 5 - 1
internal/plumbing/languages.go

@@ -101,7 +101,11 @@ func (langs *LanguagesDetection) detectLanguage(name string, blob *CachedBlob) s
 	if err == ErrorBinary {
 		return ""
 	}
-	return enry.GetLanguage(path.Base(name), blob.Data)
+	data := make([]byte, len(blob.Data))
+	copy(data, blob.Data)
+	// FIXME(vmarkovtsev): use the original blob.Data once https://github.com/src-d/enry/issues/196 is fixed
+	lang := enry.GetLanguage(path.Base(name), data)
+	return lang
 }
 
 func init() {