Fix a crash when merging files in the git-annex branch that contain invalid utf8.
The crash actually occurred when writing out the file, which was done to a handle that had not had fileSystemEncoding applied to it.
This commit is contained in:
parent
aa8b15d966
commit
e05c21cb73
4 changed files with 17 additions and 5 deletions
|
@ -73,7 +73,7 @@ pipeReadStrict params repo = assertLocal repo $
|
|||
pipeWriteRead :: [CommandParam] -> String -> Repo -> IO String
|
||||
pipeWriteRead params s repo = assertLocal repo $
|
||||
writeReadProcessEnv "git" (toCommand $ gitCommandLine params repo)
|
||||
(gitEnv repo) s
|
||||
(gitEnv repo) s (Just fileEncoding)
|
||||
|
||||
{- Runs a git subcommand, feeding it input on a handle with an action. -}
|
||||
pipeWrite :: [CommandParam] -> Repo -> (Handle -> IO ()) -> IO ()
|
||||
|
|
|
@ -64,17 +64,24 @@ readProcessEnv cmd args environ =
|
|||
, env = environ
|
||||
}
|
||||
|
||||
{- Writes stdout to a process, returns its output, and also allows specifying
|
||||
- the environment. -}
|
||||
{- Writes a string to a process on its stdout,
|
||||
- returns its output, and also allows specifying the environment.
|
||||
-
|
||||
-
|
||||
-}
|
||||
writeReadProcessEnv
|
||||
:: FilePath
|
||||
-> [String]
|
||||
-> Maybe [(String, String)]
|
||||
-> String
|
||||
-> (Maybe (Handle -> IO ()))
|
||||
-> IO String
|
||||
writeReadProcessEnv cmd args environ input = do
|
||||
writeReadProcessEnv cmd args environ input adjusthandle = do
|
||||
(Just inh, Just outh, _, pid) <- createProcess p
|
||||
|
||||
maybe (return ()) (\a -> a inh) adjusthandle
|
||||
maybe (return ()) (\a -> a outh) adjusthandle
|
||||
|
||||
-- fork off a thread to start consuming the output
|
||||
output <- hGetContents outh
|
||||
outMVar <- newEmptyMVar
|
||||
|
|
2
debian/changelog
vendored
2
debian/changelog
vendored
|
@ -13,6 +13,8 @@ git-annex (3.20121010) UNRELEASED; urgency=low
|
|||
their group, or even to disable syncing to them.
|
||||
* git config remote.name.annex-sync can be used to control whether
|
||||
a remote gets synced.
|
||||
* Fix a crash when merging files in the git-annex branch that contain
|
||||
invalid utf8.
|
||||
|
||||
-- Joey Hess <joeyh@debian.org> Wed, 10 Oct 2012 12:59:25 -0400
|
||||
|
||||
|
|
|
@ -57,3 +57,6 @@ Using Ubuntu's original version (3.20120406) the error message is a bit differen
|
|||
> try to look at it again soon; the last 2 times I looked at that code
|
||||
> I could not see an easy way to make it allow invalid utf-8 encoded data.
|
||||
> --[[Joey]]
|
||||
|
||||
>> [[done]], although I am no longer so sure this was the last utf-8
|
||||
>> encoding bug.. --[[Joey]]
|
||||
|
|
Loading…
Reference in a new issue