Browse Source

turns out, free(NULL) is just fine ...

Oswald Buddenhagen 14 năm trước cách đây
mục cha
commit
d637772339
3 tập tin đã thay đổi với 8 bổ sung16 xóa
  1. 2 4
      src/compat/convert.c
  2. 3 6
      src/drv_imap.c
  3. 3 6
      src/drv_maildir.c

+ 2 - 4
src/compat/convert.c

@@ -164,8 +164,7 @@ convert( config_t *box )
 		if (!(d = opendir( buf ))) {
 			perror( "opendir" );
 		  err4:
-			if (msgs)
-				free( msgs );
+			free( msgs );
 			if (db)
 				db->close( db, 0 );
 			goto err2;
@@ -252,8 +251,7 @@ convert( config_t *box )
 	close( fd );
 	unlink( ilname );
 
-	if (msgs)
-		free( msgs );
+	free( msgs );
 	free( mboxdir );
 	return;
 }

+ 3 - 6
src/drv_imap.c

@@ -520,8 +520,7 @@ v_submit_imap_cmd( imap_store_t *ctx, struct imap_cmd *cmd,
 			printf( ">>> %d LOGIN <user> <pass>\n", cmd->tag );
 	}
 	if (socket_write( &ctx->buf.sock, buf, bufl ) != bufl) {
-		if (cmd->param.data)
-			free( cmd->param.data );
+		free( cmd->param.data );
 		free( cmd->cmd );
 		free( cmd );
 		return NULL;
@@ -1115,8 +1114,7 @@ get_cmd_result( imap_store_t *ctx, struct imap_cmd *tcmd )
 		  normal:
 			if (cmdp->param.done)
 				cmdp->param.done( ctx, cmdp, resp );
-			if (cmdp->param.data)
-				free( cmdp->param.data );
+			free( cmdp->param.data );
 			free( cmdp->cmd );
 			free( cmdp );
 			if (!tcmd || tcmd == cmdp)
@@ -1590,8 +1588,7 @@ imap_select( store_t *gctx, int minuid, int maxuid, int *excs, int nexcs,
 	ret = DRV_OK;
 
   bail:
-	if (excs)
-		free( excs );
+	free( excs );
 	return cb( ret, aux );
 }
 

+ 3 - 6
src/drv_maildir.c

@@ -133,10 +133,8 @@ maildir_cleanup( store_t *gctx )
 	if (ctx->db)
 		ctx->db->close( ctx->db, 0 );
 #endif /* USE_DB */
-	if (gctx->path)
-		free( gctx->path );
-	if (ctx->excs)
-		free( ctx->excs );
+	free( gctx->path );
+	free( ctx->excs );
 	if (ctx->uvfd >= 0)
 		close( ctx->uvfd );
 }
@@ -214,8 +212,7 @@ maildir_free_scan( msglist_t *msglist )
 
 	if (msglist->ents) {
 		for (i = 0; i < msglist->nents; i++)
-			if (msglist->ents[i].base)
-				free( msglist->ents[i].base );
+			free( msglist->ents[i].base );
 		free( msglist->ents );
 	}
 }