From 0396bd9a17ee73f8dc3c0f8a4424424f3ce16ead Mon Sep 17 00:00:00 2001 From: =?utf8?q?Felix=20D=C3=B6rre?= Date: Thu, 19 Feb 2015 21:19:35 +0100 Subject: [PATCH] FIX: race conditions by coverity. --- src/org/cacert/gigi/dbObjects/Certificate.java | 2 +- src/org/cacert/gigi/dbObjects/CertificateOwner.java | 6 +++--- src/org/cacert/gigi/dbObjects/Domain.java | 6 +++--- src/org/cacert/gigi/dbObjects/EmailAddress.java | 6 +++--- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/org/cacert/gigi/dbObjects/Certificate.java b/src/org/cacert/gigi/dbObjects/Certificate.java index ced044cd..9a857fe4 100644 --- a/src/org/cacert/gigi/dbObjects/Certificate.java +++ b/src/org/cacert/gigi/dbObjects/Certificate.java @@ -206,7 +206,7 @@ public class Certificate { } - public CertificateStatus getStatus() { + public synchronized CertificateStatus getStatus() { if (id == 0) { return CertificateStatus.DRAFT; } diff --git a/src/org/cacert/gigi/dbObjects/CertificateOwner.java b/src/org/cacert/gigi/dbObjects/CertificateOwner.java index d7439f2c..82143db5 100644 --- a/src/org/cacert/gigi/dbObjects/CertificateOwner.java +++ b/src/org/cacert/gigi/dbObjects/CertificateOwner.java @@ -41,10 +41,10 @@ public abstract class CertificateOwner implements IdCachable { } protected int insert() { - if (id != 0) { - throw new Error("refusing to insert"); - } synchronized (User.class) { + if (id != 0) { + throw new Error("refusing to insert"); + } GigiPreparedStatement ps = DatabaseConnection.getInstance().prepare("INSERT INTO certOwners() VALUES()"); ps.execute(); id = ps.lastInsertId(); diff --git a/src/org/cacert/gigi/dbObjects/Domain.java b/src/org/cacert/gigi/dbObjects/Domain.java index c29d9b2b..8efa4ee1 100644 --- a/src/org/cacert/gigi/dbObjects/Domain.java +++ b/src/org/cacert/gigi/dbObjects/Domain.java @@ -168,10 +168,10 @@ public class Domain implements IdCachable { } public void insert() throws GigiApiException { - if (id != 0) { - throw new GigiApiException("already inserted."); - } synchronized (Domain.class) { + if (id != 0) { + throw new GigiApiException("already inserted."); + } checkInsert(suffix); GigiPreparedStatement ps = DatabaseConnection.getInstance().prepare("INSERT INTO `domains` SET memid=?, domain=?"); ps.setInt(1, owner.getId()); diff --git a/src/org/cacert/gigi/dbObjects/EmailAddress.java b/src/org/cacert/gigi/dbObjects/EmailAddress.java index b945f9ee..3ca39b6d 100644 --- a/src/org/cacert/gigi/dbObjects/EmailAddress.java +++ b/src/org/cacert/gigi/dbObjects/EmailAddress.java @@ -46,10 +46,10 @@ public class EmailAddress implements IdCachable { } public void insert(Language l) throws GigiApiException { - if (id != 0) { - throw new IllegalStateException("already inserted."); - } try { + if (id != 0) { + throw new IllegalStateException("already inserted."); + } GigiPreparedStatement psCheck = DatabaseConnection.getInstance().prepare("SELECT 1 FROM `emails` WHERE email=? AND deleted is NULL"); GigiPreparedStatement ps = DatabaseConnection.getInstance().prepare("INSERT INTO `emails` SET memid=?, hash=?, email=?"); ps.setInt(1, owner.getId()); -- 2.39.2