From 81797498c0f078dbe129a59f9e28e17848c00611 Mon Sep 17 00:00:00 2001 From: John Hodge Date: Mon, 21 Mar 2011 09:04:52 +0800 Subject: [PATCH] Fixing some issues spotted by graham's run of clang's static analyser --- src/client/main.c | 19 ++++++++++--------- src/server/itemdb.c | 2 +- src/server/server.c | 2 +- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/src/client/main.c b/src/client/main.c index d5ef77a..fc7c19f 100644 --- a/src/client/main.c +++ b/src/client/main.c @@ -402,7 +402,11 @@ int main(int argc, char *argv[]) ret = Dispense_AlterBalance(sock, gsTextArgs[1], atoi(gsTextArgs[2]), gsTextArgs[3]); } } - // TODO: Preserve ret if non-zero + // On error, quit + if( ret ) { + close(sock); + return ret; + } // Show user information ret = Dispense_ShowUser(sock, gsTextArgs[1]); @@ -550,7 +554,7 @@ int main(int argc, char *argv[]) // TODO: More close(sock); - return RV_UNKNOWN_ERROR; + return ret; } // Query an item price else if( strcmp(gsTextArgs[0], "iteminfo") == 0 ) @@ -1533,7 +1537,7 @@ void PopulateItemList(int Socket) char *buf; int responseCode; - char *itemType, *itemStart; + char *arrayType; int count, i; regmatch_t matches[4]; @@ -1556,19 +1560,16 @@ void PopulateItemList(int Socket) // 202 Item RunRegex(&gArrayRegex, buf, 4, matches, "Malformed server response"); - itemType = &buf[ matches[2].rm_so ]; buf[ matches[2].rm_eo ] = '\0'; + arrayType = &buf[ matches[2].rm_so ]; buf[ matches[2].rm_eo ] = '\0'; count = atoi( &buf[ matches[3].rm_so ] ); // Check array type - if( strcmp(itemType, "Items") != 0 ) { + if( strcmp(arrayType, "Items") != 0 ) { // What the?! fprintf(stderr, "Unexpected array type, expected 'Items', got '%s'\n", - itemType); + arrayType); exit(RV_UNKNOWN_ERROR); } - - itemStart = &buf[ matches[3].rm_eo ]; - free(buf); giNumItems = count; diff --git a/src/server/itemdb.c b/src/server/itemdb.c index a88fad8..18a1487 100644 --- a/src/server/itemdb.c +++ b/src/server/itemdb.c @@ -31,7 +31,7 @@ char *trim(char *__str); int giNumItems = 0; tItem *gaItems = NULL; time_t gItems_LastUpdated; -tHandler gPseudo_Handler = {Name:"pseudo"}; +tHandler gPseudo_Handler = {.Name="pseudo"}; tHandler *gaHandlers[] = {&gPseudo_Handler, &gCoke_Handler, &gSnack_Handler, &gDoor_Handler}; int giNumHandlers = sizeof(gaHandlers)/sizeof(gaHandlers[0]); char *gsItemListFile = DEFAULT_ITEM_FILE; diff --git a/src/server/server.c b/src/server/server.c index 1f813d4..b34d93d 100644 --- a/src/server/server.c +++ b/src/server/server.c @@ -728,7 +728,7 @@ void Server_Cmd_DISPENSE(tClient *Client, char *Args) case 1: sendf(Client->Socket, "501 Unable to dispense\n"); return ; case 2: sendf(Client->Socket, "402 Poor You\n"); return ; default: - sendf(Client->Socket, "500 Dispense Error\n"); + sendf(Client->Socket, "500 Dispense Error (%i)\n", ret); return ; } } -- 2.20.1