From 0940b50f2c7f5972945564db62a826ebf1d1811c Mon Sep 17 00:00:00 2001 From: jomo Date: Sun, 14 Feb 2016 17:04:33 +0100 Subject: [PATCH] networking.save_texture should return image buffer, not lwip image object This led to a crash when a cape or skin was not stored on disk. The function caled skins.save_image and returned that function's lwip image object instead of the expected buffer. skins.save_image also no longer returns the image object because it's not used anywhere --- lib/cache.js | 2 +- lib/helpers.js | 4 ++-- lib/networking.js | 4 ++-- lib/routes/skins.js | 1 - lib/skins.js | 8 ++++---- 5 files changed, 9 insertions(+), 10 deletions(-) diff --git a/lib/cache.js b/lib/cache.js index 7f81cd7..bafe737 100644 --- a/lib/cache.js +++ b/lib/cache.js @@ -72,7 +72,7 @@ exp.info = function(callback) { // set model type to value of *slim* exp.set_slim = function(rid, userId, slim, callback) { - logging.debug(rid, "setting slim for ", userId, "to " + slim); + logging.debug(rid, "setting slim for", userId, "to " + slim); // store userId in lower case if not null userId = userId && userId.toLowerCase(); diff --git a/lib/helpers.js b/lib/helpers.js index be53071..fcb156a 100644 --- a/lib/helpers.js +++ b/lib/helpers.js @@ -49,7 +49,7 @@ function store_skin(rid, userId, profile, cache_details, callback) { if (err1 || !img) { callback(err1, null, slim); } else { - skins.save_image(img, skinpath, function(skin_err, skin_img) { + skins.save_image(img, skinpath, function(skin_err) { if (skin_err) { callback(skin_err, null, slim); } else { @@ -102,7 +102,7 @@ function store_cape(rid, userId, profile, cache_details, callback) { if (net_err || !img) { callback(net_err, null); } else { - skins.save_image(img, capepath, function(skin_err, skin_img) { + skins.save_image(img, capepath, function(skin_err) { logging.debug(rid, "cape saved"); callback(skin_err, cape_hash); }); diff --git a/lib/networking.js b/lib/networking.js index 3cba117..04e6ae0 100644 --- a/lib/networking.js +++ b/lib/networking.js @@ -187,8 +187,8 @@ exp.save_texture = function(rid, tex_hash, outpath, callback) { if (err) { callback(err, response, null); } else { - skins.save_image(img, outpath, function(img_err, saved_img) { - callback(img_err, response, saved_img); + skins.save_image(img, outpath, function(img_err) { + callback(img_err, response, img); }); } }); diff --git a/lib/routes/skins.js b/lib/routes/skins.js index 445c7cc..eeb49ca 100644 --- a/lib/routes/skins.js +++ b/lib/routes/skins.js @@ -1,4 +1,3 @@ -var logging = require("../logging"); var helpers = require("../helpers"); var skins = require("../skins"); var cache = require("../cache"); diff --git a/lib/skins.js b/lib/skins.js index 3bfd7c1..f05776c 100644 --- a/lib/skins.js +++ b/lib/skins.js @@ -164,17 +164,17 @@ exp.open_skin = function(rid, skinpath, callback) { // write the image +buffer+ to the +outpath+ file // the image is stripped down by lwip. -// callback: error, image +// callback: error exp.save_image = function(buffer, outpath, callback) { lwip.open(buffer, "png", function(err, image) { if (err) { - callback(err, image); + callback(err); } else { image.writeFile(outpath, function(write_err) { if (write_err) { - callback(write_err, image); + callback(write_err); } else { - callback(null, image); + callback(null); } }); }