mirror of
https://github.com/OMGeeky/google-apis-rs.git
synced 2026-02-13 21:19:05 +01:00
Truncate all files we open to fix #240
Otherwise it's possible to leave bytes related to a previous version of the file in tact, tailing the newly written content. This in turn leads to malformed json when tokens are rewritten.
This commit is contained in:
@@ -404,7 +404,7 @@ pub fn writer_from_opts(arg: Option<&str>) -> Result<Box<Write>, io::Error> {
|
||||
let f = arg.unwrap_or("-");
|
||||
match f {
|
||||
"-" => Ok(Box::new(stdout())),
|
||||
_ => match fs::OpenOptions::new().create(true).write(true).open(f) {
|
||||
_ => match fs::OpenOptions::new().create(true).truncate(true).write(true).open(f) {
|
||||
Ok(f) => Ok(Box::new(f)),
|
||||
Err(io_err) => Err(io_err),
|
||||
},
|
||||
@@ -486,7 +486,7 @@ impl TokenStorage for JsonTokenStorage {
|
||||
}
|
||||
}
|
||||
Some(token) => {
|
||||
match fs::OpenOptions::new().create(true).write(true).open(&self.path(scope_hash)) {
|
||||
match fs::OpenOptions::new().create(true).write(true).truncate(true).open(&self.path(scope_hash)) {
|
||||
Ok(mut f) => {
|
||||
match json::to_writer_pretty(&mut f, &token) {
|
||||
Ok(_) => Ok(()),
|
||||
@@ -767,6 +767,7 @@ pub fn application_secret_from_directory(dir: &str,
|
||||
err = match fs::OpenOptions::new()
|
||||
.create(true)
|
||||
.write(true)
|
||||
.truncate(true)
|
||||
.open(&secret_path) {
|
||||
Err(cfe) => cfe,
|
||||
Ok(mut f) => {
|
||||
|
||||
Reference in New Issue
Block a user