From cc4d974eeb8caf95dceff7c6b91115cdbfaf7404 Mon Sep 17 00:00:00 2001 From: Curtis McEnroe Date: Fri, 2 Mar 2018 16:45:05 -0500 Subject: Refactor critical chunk check into skipChunk --- bin/pngo.c | 26 ++++++-------------------- 1 file changed, 6 insertions(+), 20 deletions(-) (limited to 'bin') diff --git a/bin/pngo.c b/bin/pngo.c index 5ce62797..c34ec7d1 100644 --- a/bin/pngo.c +++ b/bin/pngo.c @@ -70,10 +70,6 @@ struct PACKED Chunk { char type[4]; }; -static bool ancillary(struct Chunk chunk) { - return chunk.type[0] & 0x20; -} - static const char *typeStr(struct Chunk chunk) { static char buf[5]; memcpy(buf, chunk.type, 4); @@ -113,6 +109,9 @@ static void writeCrc(void) { } static void skipChunk(struct Chunk chunk) { + if (!(chunk.type[0] & 0x20)) { + errx(EX_CONFIG, "%s: unsupported critical chunk %s", path, typeStr(chunk)); + } uint8_t discard[chunk.size]; readExpect(discard, sizeof(discard), "chunk data"); readCrc(); @@ -263,16 +262,8 @@ static void readPalette(void) { struct Chunk chunk; for (;;) { chunk = readChunk(); - if (0 == memcmp(chunk.type, "PLTE", 4)) { - break; - } else if (ancillary(chunk)) { - skipChunk(chunk); - } else { - errx( - EX_DATAERR, "%s: expected PLTE chunk, found %s", - path, typeStr(chunk) - ); - } + if (0 == memcmp(chunk.type, "PLTE", 4)) break; + skipChunk(chunk); } if (chunk.size % 3) { errx(EX_DATAERR, "%s: PLTE size %u not divisible by 3", path, chunk.size); @@ -322,13 +313,8 @@ static void readData(void) { } else if (0 == memcmp(chunk.type, "IEND", 4)) { errx(EX_DATAERR, "%s: missing IDAT chunk", path); - } else if (ancillary(chunk)) { - skipChunk(chunk); } else { - errx( - EX_CONFIG, "%s: unsupported critical chunk %s", - path, typeStr(chunk) - ); + skipChunk(chunk); } } -- cgit 1.4.1 d=4b6556381032c4aad2bb002adb1ce87f6fb5a69d&showmsg=1&follow=1'>root/home/.local/bin/wiki (unfollow)
Commit message (Collapse)Author
2019-11-20Remove color from 1sh promptsJune McEnroe
The weird PSlit behaviour just causes more weirdness than it's worth. The color I was using was barely different anyway.
2019-11-19Move pounce to top of causal.agencyJune McEnroe
2019-11-18Add Ninefox GambitJune McEnroe
2019-11-08Add The Great BelieversJune McEnroe
2019-11-06Add GPL header templateJune McEnroe
2019-11-01Add uber messageJune McEnroe
2019-11-01Use initial in git authorJune McEnroe
2019-11-01Add Hobo Johnson and The Lovemakers Tiny DeskJune McEnroe
2019-10-30Use braces in causal.agency MakefileJune McEnroe
2019-10-30Add scheme "screenshot" to causal.agencyJune McEnroe
2019-10-30Add pounce to causal.agencyJune McEnroe
2019-10-28Mark ' for \aJune McEnroe
2019-10-23Add The Book of the Unnamed MidwifeJune McEnroe
2019-10-22Add ConcreteJune McEnroe
Fun.
2019-10-14Set the write variable for nvim man modeJune McEnroe
Embarrassing...
2019-10-13Add All Systems RedJune McEnroe
2019-10-10Add The Book of PhoenixJune McEnroe
2019-10-03Add two Kim Petras songsJune McEnroe
2019-10-02Update neovim 0.4.2June McEnroe
Finally a release with my man mode fix... Meanwhile neovim itself has probably gotten worse.
2019-10-02Claim to be curl(1) in titleJune McEnroe
IMDB serves a page to our dumb User-Agent whose <title> is past the 8K boundary but serves something normal to curl(1).
2019-10-02Add The Red Threads of FortuneJune McEnroe
2019-09-28Add The Black Tides of HeavenJune McEnroe
2019-09-27Fail on HTTP failure status in titleJune McEnroe
2019-09-23Add Trail of LightningJune McEnroe
2019-09-22Revert "Enable cookies in title"June McEnroe
This reverts commit 279111dda15dd9170e11b9688eb973f2af2e6300.
2019-09-20Enable cookies in titleJune McEnroe
Perhaps this will make it less suspicious to Google. Who knows.
2019-09-16Use sensitivity aliases in TF2June McEnroe
2019-09-16Add The Just CityJune McEnroe
2019-09-12Only GET the final redirect locationJune McEnroe
2019-09-12Consume entire bodyJune McEnroe
Aborting the request and leaving data around may be causing intermittent errors. Just discard the rest of the data.
2019-09-10Add title -v flagJune McEnroe
2019-09-10Use curl error bufferJune McEnroe
2019-09-10Set Accept-Encoding in titleJune McEnroe
Because apparently it's fine for servers to respond with Content-Encoding you didn't ask for, and curl won't decode it if you didn't ask for it.
2019-09-08Set title User-AgentJune McEnroe
Some things don't like you if you don't send one.
2019-09-07Add -x flag to titleJune McEnroe
2019-09-07Ignore SIGPIPE in relayJune McEnroe
Allows restarting consumers safely.
2019-09-07Add A Memory Called EmpireJune McEnroe
2019-09-05Handle lack of Content-TypeJune McEnroe
2019-09-05Use CURLINFO_CONTENT_TYPEJune McEnroe
Oops, didn't see this.
2019-09-05Decode entities in titlesJune McEnroe
2019-09-05Print title as soon as it's availableJune McEnroe
2019-09-05Use CURL_PREFIX to set flagsJune McEnroe
2019-09-05Add titleJune McEnroe
2019-09-04Add Avorter n'est pas tuerJune McEnroe
2019-08-29Unset executable on shell scriptsJune McEnroe
2019-08-29Add long-missing setopt to bin.7June McEnroe
2019-08-29Add editJune McEnroe