From 13dfd6cccad2babce725070c32d92946dc3c04e6 Mon Sep 17 00:00:00 2001 From: Michael Pfeiffer Date: Fri, 14 May 2010 09:20:55 +0000 Subject: [PATCH] * Avoid null pointer reference if configuration dialog is canceled (fixes #5988). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36809 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- .../transports/hp_jetdirect/HPJetDirectTransport.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/add-ons/print/transports/hp_jetdirect/HPJetDirectTransport.cpp b/src/add-ons/print/transports/hp_jetdirect/HPJetDirectTransport.cpp index f59a0de602..4014be20e4 100644 --- a/src/add-ons/print/transports/hp_jetdirect/HPJetDirectTransport.cpp +++ b/src/add-ons/print/transports/hp_jetdirect/HPJetDirectTransport.cpp @@ -77,13 +77,15 @@ HPJetDirectPort::HPJetDirectPort(BDirectory* printer, BMessage *msg) } else { BAlert *alert = new BAlert("", "Can't connect to HP JetDirect printer port!", "OK"); alert->Go(); + fReady = B_ERROR; }; } HPJetDirectPort::~HPJetDirectPort() { - fEndpoint->Close(); + if (fEndpoint) + fEndpoint->Close(); delete fEndpoint; } @@ -92,7 +94,9 @@ ssize_t HPJetDirectPort::Read(void* buffer, size_t size) { // printf("HPJetDirectPort::Read(%ld bytes)\n", size); - return (ssize_t) fEndpoint->Receive(buffer, size); + if (fEndpoint) + return (ssize_t) fEndpoint->Receive(buffer, size); + return 0; } @@ -100,6 +104,8 @@ ssize_t HPJetDirectPort::Write(const void* buffer, size_t size) { // printf("HPJetDirectPort::Write(%ld bytes)\n", size); - return (ssize_t) fEndpoint->Send(buffer, size); + if (fEndpoint) + return (ssize_t) fEndpoint->Send(buffer, size); + return 0; }