diff --git a/src/libutil/util.cc b/src/libutil/util.cc
index 2a1272885545eccb0a6244b5597824d3c370f52e..d29802bcdcbe50108693fa9a0bb87020e8888df9 100644
--- a/src/libutil/util.cc
+++ b/src/libutil/util.cc
@@ -1467,7 +1467,7 @@ static Sync<std::pair<unsigned short, unsigned short>> windowSize{{0, 0}};
 static void updateWindowSize()
 {
     struct winsize ws;
-    if (ioctl(1, TIOCGWINSZ, &ws) == 0) {
+    if (ioctl(2, TIOCGWINSZ, &ws) == 0) {
         auto windowSize_(windowSize.lock());
         windowSize_->first = ws.ws_row;
         windowSize_->second = ws.ws_col;
diff --git a/src/nix/progress-bar.cc b/src/nix/progress-bar.cc
index 5c05d6b227ed004831421d4c8d590d6d98151c0c..661966733d366cf29ccf3ceb3eb8cd2ca191af83 100644
--- a/src/nix/progress-bar.cc
+++ b/src/nix/progress-bar.cc
@@ -341,7 +341,7 @@ public:
         }
 
         auto width = getWindowSize().second;
-        if (width <= 0) std::numeric_limits<decltype(width)>::max();
+        if (width <= 0) width = std::numeric_limits<decltype(width)>::max();
 
         writeToStderr("\r" + filterANSIEscapes(line, false, width) + "\e[K");
     }